无法从NSComboBox检索选定的索引

时间:2009-11-05 16:20:17

标签: objective-c cocoa nscombobox

我试图通过使用indexOfSelectedItem来获取具有数据源的NSComboBox的选定索引。

[combobox setUsesDataSource:YES];
[combobox setDataSource:dataSource];
[combobox selectItemAtIndex:1];
int idx =[combobox indexOfSelectedItem];

idx将始终返回-1;

即使在InterfaceBuilder中为NSComboBox定义内部列表,也能获得相同的结果。

还有其他方法可以检索所选索引吗?

1 个答案:

答案 0 :(得分:2)

您可以尝试调用[combobox numberOfItems];,以确保列表中有项目。

此外,调用selectItemAtIndex:1会触发您可以收听的NSComboBoxSelectionDidChangeNotification,以确保其发生变化。

编辑1:此外,您是否确保在Interface Builder中的ComboBox的“属性检查器”(Command-1快捷键)中选择“使用数据源”?默认情况下,它使用内部列表,这将与您尝试使用的DataSource方法冲突。

编辑2:不要介意以前的评论,您的代码会明确地称之为。