我有一个使用UISearchBar的搜索功能,它是即时发生的,所以我认为用“完成”替换键盘上的“搜索”按钮会更加明显。
有办法吗?
感谢
答案 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;
}
}