我尝试使用indexOfSelectedItem获取具有数据源的NSComboBox的选定索引。
[combobox setUsesDataSource:YES];
[combobox setDataSource:dataSource];
[combobox selectItemAtIndex:1];
int idx =[combobox indexOfSelectedItem];
idx 将始终返回 -1;
即使在 InterfaceBuilder 中为 NSComboBox 定义内部列表,也能获得相同的结果。
还有其他方法可以检索所选索引吗?
最佳答案
您可以尝试调用 [combobox numberOfItems];
只是为了确保列表中有项目。
此外,调用 selectItemAtIndex:1
应触发 NSComboBoxSelectionDidChangeNotification您可以聆听以确保它发生变化。
编辑 1: 另外,您是否确保在 Interface Builder 中的 ComboBox 的“属性检查器”(Command-1 快捷键)上选择“使用数据源”?默认情况下,它使用内部列表,这会与您尝试使用的 DataSource 方法冲突。
编辑 2:不要介意之前的注释,您的代码会明确调用它。
关于objective-c - 无法从 NSComboBox 检索选定的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1681719/