代码之家  ›  专栏  ›  技术社区  ›  Duck

iPhone-uisearchbar上的搜索按钮

  •  2
  • Duck  · 技术社区  · 14 年前

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

    有办法吗?

    谢谢

    5 回复  |  直到 10 年前
        1
  •  3
  •   Jason McCreary    14 年前

    你可以改变 keyboardType uiSearchBar对象的属性。但是,没有办法改变 returnKeyType 直接。您可以过滤并手动更改它。检查uisearchbar的文档,查看是否可以找到 返回键类型 因为这就是你要找的。

        2
  •  2
  •   Christian Brink    13 年前

    我是这样完成的:

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

    希望有帮助。这种方法(即通过索引获取子视图)在将来可能会被打破,但目前还可以正常工作。

        3
  •  0
  •   damithH    11 年前
    for (UIView *view in _searchBar.subviews){
                if ([view isKindOfClass:[UITextField class] ]) {
                    UITextField *searchTf = (UITextField *)view;
                    searchTf.returnKeyType = UIReturnKeyDone;
                }
    }
    
        4
  •  0
  •   Chidhambaram    10 年前

    这适用于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;
            }
        }
    }
    
        5
  •  -1
  •   Conor    12 年前

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

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