我有NSComboBox和外部数据源,我使用方法:
(NSString *)comboBox:(NSComboBox *)aComboBox completedString:(NSString *)string
要完成带有建议的字符串,一切正常,除非我按退格键,它不会自动完成。我试图调试它甚至没有在退格上调用这个方法。我也试过直接从方法中调用它:
-(void)controlTextDidChange:(NSNotification *)notification
但它不会选择完成的字符串。 我的问题是我做错了什么?是否有更好的方法来处理删除或我应该尝试以编程方式选择已完成的文本?
答案 0 :(得分:1)
使用controlTextDidChange
检测何时按下退格键,然后使用complete
上的NSTextView
手动触发完成:
-(void)controlTextDidChange:(NSNotification *)notification {
if (... /* backspace pressed */) {
NSTextField *textField = [[notification userInfo] objectForKey:@"NSFieldEditor"];
[textField complete:self];
}
}