我有一個NSComboBox的數據源,它完美地工作,當你點擊三角形,並通過單擊它選擇一個項目。不過,我也希望它允許用戶使用自動完成鍵入框來選擇名稱。目前,當用戶鍵入時,我希望選擇自動完成的項目,但不選擇。NSComboBox代理
我的想法是我應該實現一個委託方法,以便當用戶在組合框中鍵入並且選擇項目名稱autocompletes時,讓組合框運行該方法,然後從彈出框中選擇相同名稱的項目up list。
我實現了這個代表團方法:
- (BOOL)control:(NSControl *)control textShouldEndEditing:(NSText *)fieldEditor {
NSString *tempString = [outletPerformanceVenue stringValue];
NSLog(@"New Value = %@",tempString);
[outletPerformanceVenue selectItemWithObjectValue:tempString];
return TRUE;
}
不過,我收到以下編譯器錯誤:
*** -[NSComboBoxCell selectItemWithObjectValue:] should not be called when usesDataSource is set to YES
似乎相當直接的,但讓我知道...這將是最好的選擇項目的方式?我應該確定包含此名稱的數據源數組中的記錄索引,然後使用相同的索引選擇組合框項目?還是有更直接的方法?
*編輯*
一個更簡單更直接的問題可能是:
如果(而不是從下拉列表中選擇)用戶鍵入項目的名稱爲組合框。如何在使用數據源時從組合框中檢索該項目的索引?
要雪上加霜的是,蘋果的文檔說selectItemWithObjectValue:應與內部或外部數據源的工作......每這裏:
你有沒有想過這件事的運氣? – Kyle