1

独自に機能する次の 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;
}

それらはそれぞれ単独でうまく機能しますが、一緒に最初のもの(検索ボタン)は呼び出されません

4

2 に答える 2

3

\n を CHARACTERS に追加する必要があると思います

#define CHARACTERS @"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz _-.\n"
于 2013-02-26T17:54:17.730 に答える
0

NO2番目のメソッドは常に返され、最初のメソッドが呼び出されないようにすると思います

于 2013-02-26T12:45:34.443 に答える