2017-02-15 51 views
0

當插入點離開組合框時,我想獲得控制權,以便測試文本是否與combox列表中的條目匹配。我已經添加了代表對我的視圖控制器爲其他組合框的功能,例如:插入點離開NSComboBox時如何獲取通知

func comboBox(_ aComboBox: NSComboBox, completedString string: String) -> String? 

下面的函數看起來像什麼,我想:

func control(_ control: NSControl, textShouldEndEditing fieldEditor: NSText) -> Bool 

我的應用程序代碼IDE將其標識爲在API中。當我運行我的代碼時,它不會被調用(我有一個打印語句)。我試圖改變「控制」到「comboBox」沒有成功。我需要額外做些什麼才能調用這個函數嗎?

更新

正如由@Mangerlahn指出,該功能需要在數據源。我把它移到那裏沒有任何效果。它在代表處。

extension TrackDialogViewController: NSComboBoxDataSource { 
... 
func control(_ control: NSControl, textShouldEndEditing fieldEditor: NSText) -> Bool {...} 
... 
} 
+1

control ..函數是'NSControlTextEditingDelegate'的一部分,因此也是NSComboBoxDelegate方法的一部分。如果您已將自己設置爲組合框的代表,則應該調用該方法。 但是,comboBox(.. completedString ..)是NSComboBoxDataSource的一部分,它與委託不同。所以確保你被設置爲comboBox的委託和數據源。 – mangerlahn

回答

0

愚蠢的用戶錯誤。我失去了一個RAID驅動器,不得不重新啓動。 XCode搞砸了,爲我的項目顯示了兩個窗口。我看到的那個沒有控制檯。

相關問題