Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何禁用特定文本字段上的键盘,但允许选择器作为输入查看?_Ios_Swift_Cocoa Touch_Uitextfield_Uipickerview - Fatal编程技术网

Ios 如何禁用特定文本字段上的键盘,但允许选择器作为输入查看?

Ios 如何禁用特定文本字段上的键盘,但允许选择器作为输入查看?,ios,swift,cocoa-touch,uitextfield,uipickerview,Ios,Swift,Cocoa Touch,Uitextfield,Uipickerview,我在视图控制器中有两个文本字段,一个使用pickerView作为输入,另一个使用键盘,问题是键盘仍然在pickerView下启用。我已经设置好,当使用底部的文本字段时,键盘会向上移动视图以使文本字段可见,但当我单击顶部的文本字段(使用pickerView)时,它也会向上移动视图,而您无法看到该文本字段上的输入。我只需要使用顶部文本字段上的pickerView,以便在使用该文本字段时视图不会向上移动。 下面是我用来向上移动视图的内容: func keyboardWillShow(notificat

我在视图控制器中有两个文本字段,一个使用pickerView作为输入,另一个使用键盘,问题是键盘仍然在pickerView下启用。我已经设置好,当使用底部的文本字段时,键盘会向上移动视图以使文本字段可见,但当我单击顶部的文本字段(使用pickerView)时,它也会向上移动视图,而您无法看到该文本字段上的输入。我只需要使用顶部文本字段上的pickerView,以便在使用该文本字段时视图不会向上移动。 下面是我用来向上移动视图的内容:

func keyboardWillShow(notification: NSNotification) {

    bottomConstraint.constant = 200
    topConstraint.constant = -200
    UIView.animateWithDuration(0.3) {
        self.view.layoutIfNeeded()
    }
}



func keyboardWillHide(notification: NSNotification) {

    bottomConstraint.constant = 8
    topConstraint.constant = 10
    UIView.animateWithDuration(0.3) {
        self.view.layoutIfNeeded()
    }
}
以下是我在viewDidLoad中设置pickerView的步骤:(colorCodePicker是以pickerView作为输入的文本字段)


我已经尝试了这里的大多数解决方案,但没有任何有效的方法,例如,如果我禁用用户输入,我就不能调用pickerView,还尝试在文本字段上插入一个清除按钮,就像其中一个建议一样,但没有成功。或者,当底部文本字段处于活动状态时,只向上移动视图的解决方案,有什么想法吗?

我知道这不是确切的答案,但如果您只使用IQKeyboardManager,您不需要在应用程序的任何场景中考虑这些人员


中,键盘将显示
键盘将隐藏
检查
是否为colorCodePicker.isFirstResponder()
,以决定是否更改约束。

可以快速修复以节省时间,但我建议使用
UITableViewController
构建表单页面。它自动进行键盘处理。是的,您需要创建包含
UITextField
s的
UITableViewCell
s,但我认为这是可行的


我不喜欢使用独立的
UITableViewController
,因为它们没有
UIView
作为自己的
self.view
,因此我将它们嵌入到我的视图控制器中,并在切换期间访问其
tableView
。即使它不是
表视图
数据源
/
委托
,它也能处理键盘。

@zcui93正是我所需要的,谢谢它工作得很好
let pickerView = UIPickerView()

    pickerView.delegate = self

    pickerView.backgroundColor = UIColor.whiteColor()

    colorCodePicker.inputView = pickerView