Ios 无法再次退出搜索栏
我真的不明白为什么会这样。如有任何提示,将不胜感激 设置:Ios 无法再次退出搜索栏,ios,swift,Ios,Swift,我真的不明白为什么会这样。如有任何提示,将不胜感激 设置: UIViewController具有以下子视图: UISearchBar UITextField UIView(使用PickerView和Done按钮)-viewDidLoad将其隐藏 我有两个助手函数,可以简化为: func showPickerView () { myPickerSubView.alpha = 1 } func hidePickerView () { myPickerSubView.alpha = 0 }
UIViewController
具有以下子视图:
UISearchBar
UITextField
UIView
(使用PickerView和Done按钮)-viewDidLoad将其隐藏func showPickerView () {
myPickerSubView.alpha = 1
}
func hidePickerView () {
myPickerSubView.alpha = 0
}
(实际上有动画、上下滑动等,但这部分效果很好)
我想让myPickerSubView
在用户点击UISearchBar
或UITextField
时显示。myPickerSubView被myPickerSubView
上的“完成”按钮取消
我从UITextField
开始,我很好地使用了它:
func textFieldDidBeginEditing(textField: UITextField)
{
if !(pickerSubViewVisible)
{
self.showPickerView()
}
eventFloorTextField.endEditing(true)
}
func pickerView(eventFloorPicker: UIPickerView, didSelectRow row:Int, inComponent component: Int {
//.. other processing code
self.eventFloorTextField.text = "My Pick: \(myPick)" //so the textfield gets updated
}
我想改用UISearchBar
,因为我想使用内置的范围栏来增加一些功能。因此,在将ui搜索栏
委托设置为self等之后,我想我可以:
func searchBarTextDidBeginEditing(searchBar: UISearchBar)
{
eventFloorSearchBar.endEditing(true)
self.showPickerView()
}
当您第一次按下ui搜索栏时,PickerSubView
将按预期显示。然后,无论我做什么(按我的文本字段,关闭选择器子视图
),如果我第二次点击ui搜索栏
,键盘将从底部弹出。如果myPickerSubView
已存在,键盘将覆盖它。如果PickerSubView
不存在,如果我点击UITextField
,则PickerSubView
将在键盘后面向上滑动
我不知道它是否重要,但插入符号(闪烁的光标)仍保留在UISearchBar
文本字段中,但即使我先点击UITextfield
使其消失,当我第二次点击UISearchBar
时,它始终会显示一个键盘
我尝试过辞职FirstResponder以及其他各种方法,但它们似乎都不起作用。尝试将您的选择器子视图设置为搜索栏的输入视图
——这样可以防止键盘滑出。我认为您可以为按钮设置输入视图,但在UISeachbar中,它是一个默认为零的只读值。我尝试将UISearchbar子类化,然后按照苹果的建议覆盖“inputView”,使其成为“读/写”,但在这方面没有成功。。。