簡體   English   中英

如何為NSComboBox啟用不區分大小寫的自動完成?

[英]How can I enable case insensitive autocomplete for a NSComboBox?

我已經將NSComboBox綁定到接口構建器中的數據源。 當我在NSComboBox中輸入內容時,我正確地獲得了自動完成建議。

但是,自動完成是區分大小寫的,這意味着如果角色使用了錯誤的大小寫我就不會得到建議。

如何為NSComboBox啟用不區分大小寫的自動完成,NSComboBox綁定到接口構建器中的數據源?

謝謝

您應該在NSComboBox數據源中實現comboBox:completedString:例如:

- (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 @"";
}

你可以繼承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;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM