无法再次撤消搜索栏

时间:2015-05-16 04:17:52

标签: ios swift

我真的不明白为什么会这样。任何提示都会非常感激。

设定: UIViewController包含以下子视图:

  1. UISearchBar
  2. UITextField
  3. UIView(使用PickerView和Done按钮) - viewDidLoad隐藏它。
  4. 我有两个辅助函数可以简化为:

    func showPickerView () {
      myPickerSubView.alpha = 1
    }
    
    func hidePickerView () {
      myPickerSubView.alpha = 0
    }
    

    (实际上有动画,上下滑动等,但这部分工作正常)

    我希望myPickerSubView显示该人何时点击UISearchBarUITextField。 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代替,因为我想使用内置范围栏来增加一些功能。所以将UISearchBar代表设置为自我等我认为我可以这样做:

      func searchBarTextDidBeginEditing(searchBar: UISearchBar)
      {
        eventFloorSearchBar.endEditing(true)
        self.showPickerView()
      }
    

    第一次按UISearchBar时,PickerSubView会按预期显示。然后,无论我做什么(按下我的文本字段,忽略PickerSubView,如果我再次点击UISearchBar,键盘将从底部出现。如果我的PickerSubView已经存在,键盘将覆盖它。如果PickerSubView不存在,如果点按UITextFieldPickerSubView会在键盘后面滑动。

    我不知道它是否显着 - 但插入符号(闪烁的光标)仍保留在UISearchBar文本字段中,但即使我通过首先点击UITextfield使其消失再次点击UISearchBar,它将始终显示一个键盘。

    我已经尝试了resignFirstResponder以及其他各种方法,但它们似乎都没有用。

0 个答案:

没有答案