我有一个NSPopUpButton
。每当我向其中添加或删除项目时,第一个项目都会自动被选择。我想抑制这种情况;我希望NSPopUpButton
出现时未选择任何内容,并且在用户选择某些内容之前不要选择任何内容。
一切都在用代码构造。 (这是一个后端; GUI布局来自其他地方。)NSComboBox
已经做到了。
对于NSTableView
,我使用了NSArrayController
和Cocoa绑定,所以我可以这样做:
[ac setSelectsInsertedObjects:NO]; // for insertions
[ac setAvoidsEmptySelection:NO]; // for deletions
我尝试使用
NSPopUpButton
进行此操作,但这并没有改变行为:仍会自动选择第一项。我还尝试过根据IRC的建议访问某人的支持
NSMenu
并添加该内容;行为没有改变。我注意到
NSPopUpButton
,synchronizeTitleAndSelectedItem
上有一个方法,似乎完全按照我说的NSPopUpButton
本身的方法执行,但是我看不到在NSPopUpButton
或NSPopUpButtonCell
中禁用它的方法。我是否必须使NSPopUpButton
子类化才能使此方法不起作用?我对这个想法并不特别感兴趣。还有我在做错什么吗?谢谢。
最佳答案
推测,但可能的答案:
如果您使用的是arrayController,并且已绑定了内容但未绑定selectionIndex,则弹出窗口将使选择索引保持为零,即使该索引处的对象在其他地方发生碰撞也是如此。
因此也将选择索引绑定到数组控制器。