如何使用swift 5

时间:2015-11-09 12:21:30

标签: macos swift5 nscombobox

我有NSComboBox和外部数据源,我使用方法:

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

要完成带有建议的字符串,一切正常,除非我按退格键,它不会自动完成。我试图调试它甚至没有在退格上调用这个方法。我也试过直接从方法中调用它:

-(void)controlTextDidChange:(NSNotification *)notification

但它不会选择完成的字符串。 我的问题是我做错了什么?是否有更好的方法来处理删除或我应该尝试以编程方式选择已完成的文本?

1 个答案:

答案 0 :(得分:1)

使用controlTextDidChange检测何时按下退格键,然后使用complete上的NSTextView手动触发完成:

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