iOS10如何隐藏" x" searchBar的符号

时间:2017-10-05 02:17:24

标签: ios swift uisearchbar

我可以显示和隐藏键盘。有一个问题:当我在searchBar中点击某些内容时,searchBar左侧有一个X符号和一个取消按钮。如果我先单击取消按钮然后单击X符号,我将收到致命错误:索引超出范围。

enter image description here

所以我想隐藏“x”符号而不是“取消”按钮。这可能吗?

enter image description here

2 个答案:

答案 0 :(得分:1)

获取文本字段并隐藏它。

UITextField *textField = [searchBar valueForKey:@"_searchField"];
textField.clearButtonMode = UITextFieldViewModeNever;

或Swift你可以扩展搜索栏并覆盖它。

class NoCancelButtonSearchController: UISearchController {
    let noCancelButtonSearchBar = NoCancelButtonSearchBar()
    override var searchBar: UISearchBar { return noCancelButtonSearchBar }
}

class NoCancelButtonSearchBar: UISearchBar {
    override func setShowsCancelButton(_ showsCancelButton: Bool, animated: Bool) { /* void */ }
}

答案 1 :(得分:0)

快速5

隐藏UISearchBar中的x图标:

UITextField.appearance(whenContainedInInstancesOf: [UISearchBar.self]).clearButtonMode = .never