iphone - UISearchBar上的搜索按钮

时间:2010-07-17 01:54:26

标签: iphone ipad

我有一个使用UISearchBar的搜索功能,它是即时发生的,所以我认为用“完成”替换键盘上的“搜索”按钮会更加明显。

有办法吗?

感谢

5 个答案:

答案 0 :(得分:3)

您可以更改UISearchBar对象的keyboardType属性。但是,没有办法直接更改returnKeyType。您可以过滤并手动更改它。查看UISearchBar的文档,看看是否能找到returnKeyType,因为这正是您所需要的。

答案 1 :(得分:2)

我这样做了:

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

希望有帮助。这种方法(即通过索引获取子视图)可能会在将来中断,但它现在可以正常工作。

答案 2 :(得分:0)

for (UIView *view in _searchBar.subviews){
            if ([view isKindOfClass:[UITextField class] ]) {
                UITextField *searchTf = (UITextField *)view;
                searchTf.returnKeyType = UIReturnKeyDone;
            }
}

答案 3 :(得分:0)

这适用于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;
        }
    }
}

答案 4 :(得分:-1)

不要依赖它作为第二个子视图,使用isKindOfClass:方法来检查。这将是更多的iOS更新证明。

for (UIView *subview in self.theSearchBar.subviews) {
    if ([subview isKindOfClass:[UITextField class]]) {
        [(UITextField *)subview setReturnKeyType:UIReturnKeyGo];
        break;
    }
}