NSComboBox的特殊自动完成行为

时间:2018-01-15 11:32:25

标签: objective-c cocoa autocomplete nscombobox

我有一个包含多个项目的NSComboBox。如果用户在列表打开时键入,我想在列表中选择适当的项目 (如果有相应的项目)。

扭曲:文本字段中的字符串不一定等于列表中的相应项。 (列表中的字符串可能包含其他解释。)

我尝试实施textDidChange

- (void)textDidChange:(NSNotification *)notification {
    NSString* nsstring = [self stringValue];
    [self selectItemAtIndex: [self findCorrespondingIndex: nsstring]]; // changes text - even if documentation states that it "does not alter the contents of the combo box’s text field"
}

但是,与documentation相反,selectItemAtIndex会更改文本字段中的文字,因此我尝试了以下操作:

- (void)textDidChange:(NSNotification *)notification {
    NSString* nsstring = [self stringValue];
    [self selectItemAtIndex: [self findCorrespondingIndex: nsstring]]; // changes text - even if documentation states that it "does not alter the contents of the combo box’s text field"
    [self setStringValue:nsstring]; // clears selection
}

但是,与documentation相反,setStringValue会清除选择。

预计会出现这种情况吗?

0 个答案:

没有答案