我试图通过使用indexOfSelectedItem来获取具有数据源的NSComboBox的选定索引。
[combobox setUsesDataSource:YES];
[combobox setDataSource:dataSource];
[combobox selectItemAtIndex:1];
int idx =[combobox indexOfSelectedItem];
idx将始终返回-1;
即使在InterfaceBuilder中为NSComboBox定义内部列表,也能获得相同的结果。
还有其他方法可以检索所选索引吗?
答案 0 :(得分:2)
您可以尝试调用[combobox numberOfItems];
,以确保列表中有项目。
此外,调用selectItemAtIndex:1
会触发您可以收听的NSComboBoxSelectionDidChangeNotification,以确保其发生变化。
编辑1:此外,您是否确保在Interface Builder中的ComboBox的“属性检查器”(Command-1快捷键)中选择“使用数据源”?默认情况下,它使用内部列表,这将与您尝试使用的DataSource方法冲突。
编辑2:不要介意以前的评论,您的代码会明确地称之为。