對於我的生活,我一直在與NSComboBox
難以抗拒。NSComboBox - 獲取選定的信息和NSComboBoxDataSource
我創建一個符合所述NSComboBoxDataSource
協議的對象,並且執行:
- (NSInteger)numberOfItemsInComboBox:(NSComboBox *)aComboBox;
- (id)comboBox:(NSComboBox *)aComboBox objectValueForItemAtIndex:(NSInteger)index;
設置我NSComboBox
的實例以使用一個數據源,並將此對象作爲源。這很好,我的實現返回項目的數量,併爲特定索引處的項目返回NSString
值。
然後我決定,當我選擇某件事情時,我想做點什麼,這是我的問題開始的地方。在NSComboBoxDataSource
協議中沒有明顯的方法來處理組合框中項目的選擇。
所以,我也有我的對象符合NSComboBoxDelegate
和實施:
- (void)comboBoxSelectionDidChange:(NSNotification *)notification;
不幸的是,不像NSTableView
上的選擇,通知的對象是所選項目的NSComboBox
不是對象。 「微調」我告訴自己,我會打電話給NSComboBox
方法:
- (id)objectValueOfSelectedItem;
這應返回所選的項目,我可以從那裏。但是,只有當usesDataSource
設置爲NO
時纔會調用該方法,但這不是我的情況。當我使用這個時,警告開始飛行。
所以,我的問題是,當您使用數據源時,處理NSComboBox
選擇的正確方法是什麼?