2015-11-09 71 views
3

辦理退格鍵我有NSComboBox與外部datadource和我使用的方法:如何NSComboBox

(NSString *)comboBox:(NSComboBox *)aComboBox completedString:(NSString *)string 

完成字符串的建議,一切工作良好,除了當我按空格鍵,也不會自動完成。我試圖調試,它甚至沒有在退格上調用這個方法。我也試過直接從方法調用它:

-(void)controlTextDidChange:(NSNotification *)notification 

但它不會選擇完成字符串的方式。 我的問題是我做錯了什麼?有更好的方式來處理刪除,或者我應該嘗試以編程方式選擇完成的文本?

+0

什麼是您預期的行爲,當用戶按下刪除? – Aderstedt

+0

很好的例子是在你選擇字體的Photoshop中:它應該從控制文本中刪除字母,但是應該選擇建議,所以當你輸入時你可以重新輸入所選的(消化區域)) –

+0

你確定你的意思是刪除和不退格? – Aderstedt

回答

1

使用controlTextDidChange當按下退格鍵檢測,然後用completeNSTextView手動觸發完成:

-(void)controlTextDidChange:(NSNotification *)notification { 
    if (... /* backspace pressed */) { 
     NSTextField *textField = [[notification userInfo] objectForKey:@"NSFieldEditor"]; 
     [textField complete:self]; 
    } 
} 
+0

如何知道,如果backspace被按下?我可以保存自己最近的價值,但無法區分粘貼價值。 – Klaas