我想到的用例如下:
>我有一个名为Port的类,代表一个串口.
>其中的属性是名称字段.
>在NSPopUpbutton中,我想显示每个端口的名称字段.
>当用户选择特定端口时,它会在d出窗口中标记为预期的勾选
>当用户随后点击连接按钮时,我可以确定选择了阵列中的哪个端口.
>我想用绑定来实现这一点,因为我认为一旦我了解它,它将是更优雅的解决方案.
因此,在我的AppController.h中,我期待两个属性,我可以将其创建为属性和合成:
NSMutableArray *allPorts;Port *currentlySelectedPort;
在我的.m中有一个动作:
-(voID)dIDSelectConnect:(ID)sender{ NSLog(@"Selected port name is:%@",[currentlySelectedPort name]);}
在Port.h我有
Nsstring *name;Nsstring *baudrate;... etc ...
我创建了一个简单的项目,其中只包含一个d出窗口(和一个标签),并且跟随各种文章,我已经设法使用元素填充NSMutableArray,然后我使用ArrayController来显示值,然后在选择上设置标签的值(使用对象控制器).但是,尽管这很聪明,但它不适合我试图实现的用例.所以我转到这里寻求帮助
中号
解决方法 好的,与NSPopUpbutton的绑定有点复杂,因为它需要两件事:绑定值,以及选择其中一个值的绑定.更复杂的是,有几种完全合法的方式,你选择哪一种完全取决于你的程序结构,在某种程度上取决于个人偏好.因此,为了获取值列表,您绑定content属性.在您的情况下,您可能将此绑定到NSArrayController的arrangeObjects键.在此设置中,每个菜单项代表一个对象.默认情况下,菜单项的标题是通过调用数组中每个项目的描述返回的字符串.如果要为菜单标题使用其他属性,还可以绑定contentValues数组.只需确保为contentValues指定的密钥路径具有内容的密钥路径作为其前缀(例如,您可以使用arrangeObjects作为内容,arrangeObjects.name作为contentValues)
这将为您提供表示对象的菜单项.接下来你需要的是识别所选择的一种方法.您可以使用三种不同的绑定:selectedindex,selectedobject和selectedValue.它们分别表示用户选择的数组对象的索引,对象值(内容数组中的一个对象),以及所选项的字符串标题(如果绑定,则为contentValues数组中的一个对象)那个属性).
因此,在您的情况下,您可以将selectedobject绑定到控制器类上的selectedSerialPort属性.当用户单击“连接”按钮时,您只需要引用selectedSerialPort属性.
总结以上是内存溢出为你收集整理的objective-c – NSPopUpButton,Bindings和缩短生命周期全部内容,希望文章能够帮你解决objective-c – NSPopUpButton,Bindings和缩短生命周期所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)