NSComboBox - 获取选定的信息和NSComboBoxDataSource
-
19-09-2019 - |
题
有关我的生活,我正在不断地NSComboBox
难倒。
我创建一个符合所述NSComboBoxDataSource
协议的对象,并且执行:
- (NSInteger)numberOfItemsInComboBox:(NSComboBox *)aComboBox;
- (id)comboBox:(NSComboBox *)aComboBox objectValueForItemAtIndex:(NSInteger)index;
设置我NSComboBox
的实例以使用一个数据源,并将此对象作为源。这伟大工程,我实现返回项目的数量,并在特定的索引项返回NSString
值。
然后我决定,我要选择的东西时,做一些事情,这是我的问题开始。有没有在NSComboBoxDataSource
协议覆盖处理在组合框中项目的选择明显的方法。
所以,我也有我的对象符合NSComboBoxDelegate
和实施:
- (void)comboBoxSelectionDidChange:(NSNotification *)notification;
不幸的是,不同于上选择NSTableView
,通知的对象是不NSComboBox
的项目的选择的对象。 “微调”我告诉自己,我会打电话给NSComboBox
方法:
- (id)objectValueOfSelectedItem;
这应该返回所选的项目,我可以从那里。然而,这种方法只有当usesDataSource
设置为NO
,这不是我的情况下被调用。警告开始时,我用这个飞行。
所以,我的问题是,什么是处理NSComboBox
选择适当的方式,当你正在使用的数据源?
解决方案
我想你想的 indexOfSelectedItem 代替objectValueOfSelectedItem。然后,因为你的数据源,你应该能够调用自己的comboBox:objectValueForItemAtIndex:
方法。
不隶属于 StackOverflow