我有一个包含多个项目的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
会清除选择。
预计会出现这种情况吗?