5

インターフェイス ビルダー内のデータ ソースにバインドされた NSComboBox をバインドしました。NSComboBox に何かを入力すると、オートコンプリートの提案が正しく表示されます。

ただし、オートコンプリートでは大文字と小文字が区別されます。つまり、文字が間違った大文字を使用している場合、提案は得られません。

インターフェイス ビルダーでデータ ソースにバインドされている NSComboBox の大文字と小文字を区別しないオートコンプリートを有効にするにはどうすればよいですか?

ありがとう

4

2 に答える 2

4

NSComboBoxCell をサブクラス化し、[NSComboBoxCell completedString:] をオーバーライドできます。

- (NSString *)completedString:(NSString *)string
{
    NSString *result = nil;

    if (string == nil)
        return result;

    for (NSString *item in self.objectValues) {
        NSString *truncatedString = [item substringToIndex:MIN(item.length, string.length)];
        if ([truncatedString caseInsensitiveCompare:string] == NSOrderedSame) {
            result = item;
            break;
        }
    }

    return result;
}
于 2013-01-25T06:52:18.490 に答える
4

comboBox:completedString:NSComboBox データ ソースに実装する必要があります。例:

- (NSString *)comboBox:(NSComboBox *)comboBox completedString:(NSString *)partialString
{
    for (NSString dataString in dataSourceArray) {
        if ([[dataString commonPrefixWithString:partialString options:NSCaseInsensitiveSearch] length] == [commonPrefixWithString:partialString length]) {
            return testItem;
        }
    }
    return @"";
}
于 2013-01-23T16:11:27.577 に答える