NSComboBox 绑定,因此它调用 selectItematIndex 而不仅仅是显示属性值

Posted

技术标签:

【中文标题】NSComboBox 绑定,因此它调用 selectItematIndex 而不仅仅是显示属性值【英文标题】:NSComboBox Binding so it calls selectItematIndex instead of just displaying property value 【发布时间】:2012-08-16 17:20:46 【问题描述】:

我有一个绑定到对象控制器的 NSCombobox。对象控制器是通过 RestKit 的对象序列化框架创建的(自定义)Employee Class 的实例。 NSComboBox 的 Value 绑定到一个关键路径 employeeType,这是一个存储在远程 mysql 数据库中的 int 值。 int值对应的是员工类型,所以

0 == "Full Time" 
1 == "Part Time"
2 == "Terminated"
....
11 == "Temp Worker"

目前(如预期),NSComboBox 显示 int 值。有没有办法调用 selectItemAtIndex: 在 IB 中使用该 int 值,以便它选择该索引处的项目,而不仅仅是通过绑定将 int 值放入 NSComboBox 中?

我的想法是我可以覆盖属性中的 getter,使其看起来像:

if ([self employeeType] == 0) 
    [comboBox selectItemAtIndex:0];

但我不认为这是对绑定的正确使用。

【问题讨论】:

字符串本身(“全职”、“兼职”等)是否可用于对象控制器? 还没有,我只是使用 Interface Builder 填充了 NSComboBox 【参考方案1】:

将弹出按钮的“选定索引”绑定到您的控制器,而不是“选定值”。这是一个屏幕截图,可以让事情更清楚:

【讨论】:

以上是关于NSComboBox 绑定,因此它调用 selectItematIndex 而不仅仅是显示属性值的主要内容,如果未能解决你的问题,请参考以下文章

NSComboBox - 陷阱返回键

从 8000 个项目列表中加载 NSComboBox 的最快方法

NSComboBox getGet 更改值

NSComboBox 动作选择器在 setHidden:YES 时触发

NSComboBox未在下拉列表中显示当前选定的值

CoreData 和 NSComboBox