一起工作我有以下UISearchBar委托方法,它自己的作品(它是独立时调用)。searchBarSearchButtonClicked与shouldChangeTextInRange
-(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;
}
他们每个人都工作得很好独自但在一起的第一个(搜索按钮)不叫
这很奇怪。我觉得这两个不应该互相干扰(一个是按钮点击,另一个是文本替换),但只是为了安全起见,您可以尝试从shouldChangeTextInRange返回YES并告诉我们结果(然后与之相同返回NO) – 2013-02-26 18:05:34