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;
}

Каждый из них хорошо работает в одиночку, но вместе первый (кнопка поиска) не называется

2 ответа

Решение

Я думаю, вы должны добавить \n к CHARACTERS

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

Я думаю, что Второй метод всегда вернется NO вот и первый не называется

Другие вопросы по тегам