有关我的生活,我正在不断地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:方法。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top