searchBarSearchButtonClicked不能与shouldChangeTextInRange一起使用

我有以下UISearchBar委托方法,它自己的作品(它是独立时调用)。

-(void)searchBarSearchButtonClicked:(UISearchBar *)searchBar{ [self downloadFruits:searchBar.text]; [self.view endEditing:YES]; } 

当我添加另一个UISearchBar委托方法的前一个停止工作(它不再被调用)。

 #define CHARACTERS @"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz _-." #define CHARACTERS_NUMBERS [CHARACTERS stringByAppendingString:@"1234567890"] -(BOOL)searchBar:(UISearchBar *)searchBar shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text{ NSCharacterSet *unacceptedInput = [[NSCharacterSet characterSetWithCharactersInString:CHARACTERS_NUMBERS] invertedSet]; // If array has more than one entry, there was at least one unacceptable character if ([[text componentsSeparatedByCharactersInSet:unacceptedInput] count] > 1) return NO; else return YES; } 

他们每个人都很好地工作,但一起第一个(searchbutton)不会被调用

我想你应该把\ n添加到CHARACTERS中

 #define CHARACTERS @"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz _-.\n" 

我认为第二个方法总是返回NO ,这是第一个不叫