iphone - кнопка поиска на UISearchBar - PullRequest
2 голосов
/ 17 июля 2010

У меня есть функция поиска с использованием UISearchBar, которая происходит на лету, поэтому я думаю, что было бы более очевидно заменить эту кнопку «Поиск» на клавиатуре на «Готово».

Есть лиспособ сделать это?

спасибо

Ответы [ 5 ]

3 голосов
/ 17 июля 2010

Вы можете изменить свойство keyboardType вашего объекта UISearchBar. Тем не менее, нет способа изменить returnKeyType напрямую. Вы можете быть в состоянии отфильтровать и изменить его вручную. Проверьте документацию для UISearchBar и посмотрите, можете ли вы найти returnKeyType, поскольку это то, что вы ищете.

2 голосов
/ 23 марта 2011

Я делаю это так:

// --   Basic UISearchBar setup.
self.theSearchBar = [[UISearchBar alloc] initWithFrame:CGRectMake(0,0,320,38)];
[self.theSearchBar setDelegate:self];
[self.view addSubview:self.theSearchBar];

// --   Customize the returnKeyType of the search bar's nested UITextField.
UITextField *searchBarTextField = [[self.theSearchBar subviews] objectAtIndex:1];
searchBarTextField.returnKeyType = UIReturnKeyGo;

Надеюсь, это полезно. Этот подход (т. Е. Захват подпредставления по индексу) может сломаться в будущем, но сейчас он работает нормально.

0 голосов
/ 03 ноября 2014

Это работает для iOS 6

UITextField *searchBarTextField = [[searchBarObj subviews] objectAtIndex:1];
    searchBarTextField.returnKeyType = UIReturnKeyDefault;

    [searchBarTextField setEnablesReturnKeyAutomatically:NO];

Это работает для iOS 7

for (UIView *subview in self.searchBar.subviews)
{
    for (UIView *subSubview in subview.subviews)
    {
        if ([subSubview conformsToProtocol:@protocol(UITextInputTraits)])
        {
            UITextField *textField = (UITextField *)subSubview;
            [textField setKeyboardAppearance: UIKeyboardAppearanceAlert];
            textField.returnKeyType = UIReturnKeyDone;
            break;
        }
    }
}
0 голосов
/ 16 февраля 2013
for (UIView *view in _searchBar.subviews){
            if ([view isKindOfClass:[UITextField class] ]) {
                UITextField *searchTf = (UITextField *)view;
                searchTf.returnKeyType = UIReturnKeyDone;
            }
}
0 голосов
/ 01 октября 2012

Не полагайтесь на то, что это второе подпредставление, используйте isKindOfClass: метод для проверки.Это будет более надежным доказательством обновления iOS.

for (UIView *subview in self.theSearchBar.subviews) {
    if ([subview isKindOfClass:[UITextField class]]) {
        [(UITextField *)subview setReturnKeyType:UIReturnKeyGo];
        break;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...