繁体   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