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