Включить кнопку поиска, даже если текстовое поле в строке поиска пустое - PullRequest
0 голосов
/ 26 августа 2010

Я ищу способ включить кнопку «Поиск» на клавиатуре, даже если текстовое поле панели поиска не содержит текста в данный момент.

фон состоит в том, что вместе с термином, введенным в текстовое поле панели поиска, я отправлю другую информацию в свой бэкэнд.Тогда поиск по нулевому термину будет иметь смысл (в моей области).

Есть ли способ решить эту проблему?

Ответы [ 3 ]

2 голосов
/ 26 августа 2010

Вы можете попробовать добавить невидимый символ в начало текстового поля поиска, когда оно станет активным. Пространство нулевой ширины может быть просто вещью.

- (void)searchDisplayControllerDidBeginSearch:(UISearchDisplayController*)controller
{
    NSLog(@"Starting search");  
    controller.searchBar.text = @"\u200B";
}

Возможно, вы захотите объединить его с чем-то вроде этого, чтобы предотвратить перезагрузку данных таблицы:

- (BOOL)searchDisplayController:(UISearchDisplayController*)controller shouldReloadTableForSearchString:(NSString*)searchString
{
    return ![searchString isEqualToString:@"\u200B"];
}
0 голосов
/ 03 декабря 2014

Это очень просто в iOS 8.

В вашем viewDidLoad:

    self.searchBar.enablesReturnKeyAutomatically = false

Но для версии iOS до 8, вы должны установить UISearchBarDelegate в searchBar, а затем переопределить searchBarTextDidBeginEditing (у меня код Swift, его легко преобразовать в код Objective-C):

func searchBarTextDidBeginEditing(searchBar: UISearchBar) {

    searchBar.setShowsCancelButton(true, animated: true)

    var searchBarTextField : UITextField? = nil
    for mainview in searchBar.subviews
    {
        for subview in mainview.subviews {
            if subview.isKindOfClass(UITextField)
            {
                searchBarTextField = subview as? UITextField
                break
            }
        }
    }
    searchBarTextField!.enablesReturnKeyAutomatically = false
}
0 голосов
/ 26 августа 2010

Было бы лучше иметь кнопку или ссылку для «Показать все» или что-то подобное.

...