簡體   English   中英

目標C-添加shouldChangeTextInRange后未調用UIsearchBar的searchBarSearchButtonClicked委托

[英]Objective C - searchBarSearchButtonClicked delegate of UIsearchBar not being called after adding shouldChangeTextInRange

我正在嘗試實現UISearchBar委托

-(BOOL)searchBar:(UISearchBar *)searchBar shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)string{

    NSCharacterSet *set = [[NSCharacterSet characterSetWithCharactersInString:@"abcdefghijklmnopqrstuvwxyzQWERTYUIOPLKJHGFDSAZXCVBNM0123456789!@#$%^&*()_+./?'\"\\*- "] invertedSet];

    const char * _char = [string cStringUsingEncoding:NSUTF8StringEncoding];

    string = [[string componentsSeparatedByCharactersInSet:set] componentsJoinedByString:@""];

    int isBackSpace = strcmp(_char, "\b");

    if((string!=nil && ![string isEqualToString:@""]) || isBackSpace == -8)
    {
        return YES;
    }

    return NO;

}

並單擊搜索按鈕

-(void) searchBarSearchButtonClicked:(UISearchBar *)searchBarSender{[mySearchBar resignFirstResponder];

}

但是searchBarSearchButtonClicked委托不會被觸發。

我試着刪除shouldChangeTextInRange然后被調用。 我做錯了什么?

這里找到答案

這是由於我沒有在允許的字符中傳遞\\ n字符,並且搜索使用了\\ n被調用。

暫無
暫無

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

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