2015-11-09 32 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