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