Objective c NSCOMBOX-获取所选信息和NSCOMBOX数据源

Objective c NSCOMBOX-获取所选信息和NSCOMBOX数据源,objective-c,cocoa,macos,nscombobox,Objective C,Cocoa,Macos,Nscombobox,就我的一生而言,我一直被NSComboBox难倒 我创建了一个符合nscomboxDataSource协议的对象,并实现了: - (NSInteger)numberOfItemsInComboBox:(NSComboBox *)aComboBox; - (id)comboBox:(NSComboBox *)aComboBox objectValueForItemAtIndex:(NSInteger)index; 我将我的NSComboBox实例设置为使用数据源,并将此对象设置为源。这非常有效,

就我的一生而言,我一直被
NSComboBox
难倒

我创建了一个符合
nscomboxDataSource
协议的对象,并实现了:

- (NSInteger)numberOfItemsInComboBox:(NSComboBox *)aComboBox;
- (id)comboBox:(NSComboBox *)aComboBox objectValueForItemAtIndex:(NSInteger)index;
我将我的
NSComboBox
实例设置为使用数据源,并将此对象设置为源。这非常有效,我的实现返回项目数,并在特定索引处返回项目的
NSString

然后我决定我想做一些事情,当我选择了一些东西,这就是我的问题开始的地方。在
nscomboxDataSource
协议中,没有明显的方法可以覆盖,以处理组合框中项目的选择

因此,我还让我的对象符合
nscomboxdelegate
并实现:

- (void)comboBoxSelectionDidChange:(NSNotification *)notification;
不幸的是,与选择时的
NSTableView
不同,通知的对象是
NSComboBox
而不是所选项目的对象。“很好”我告诉自己,我将调用
NSComboBox
方法:

- (id)objectValueOfSelectedItem;
这将返回所选的项目,我可以从那里开始。但是,仅当
usesDataSource
设置为
NO
时才调用该方法,我的情况并非如此。当我使用这个时,警告开始飞起来

所以,我的问题是,当您使用数据源时,处理
NSComboBox
选择的正确方法是什么?

我认为您需要的是,而不是selectedItem的ObjectValues。然后,由于您是数据源,您应该能够调用自己的
组合框:objectValueForItemAtIndex:
方法