【发布时间】:2018-08-31 21:54:00
【问题描述】:
我有六个textfields。现在,如果我所有的textfield 都被填满并点击任何textfield,它应该始终将焦点放在第六个textfield 上并显示键盘。我尝试了下面的代码,但它没有显示keyboard,并且只有在我点击第六个textfield 时才聚焦。请告诉我这是什么问题?
func textFieldDidBeginEditing(_ textField: UITextField) {
textField.inputAccessoryView = emptyView
if let textOneLength = textFieldOne.text?.length ,let textTwoLength = textFieldTwo.text?.length ,let textThreeLength = textFieldThree.text?.length , let textFourLength = textFieldFour.text?.length,let textFiveLength = textFieldFive.text?.length , let textSixLength = textFieldSix.text?.length {
if (textOneLength > 0) && (textTwoLength > 0) && (textThreeLength > 0) && (textFourLength > 0) && (textFiveLength > 0) && (textSixLength > 0) {
self.textFieldSix.becomeFirstResponder()
} else if (textOneLength <= 0) && (textTwoLength <= 0) && (textThreeLength <= 0) && (textFourLength <= 0) && (textFiveLength <= 0) && (textSixLength <= 0){
self.textFieldOne.becomeFirstResponder()
}
}
}
【问题讨论】:
-
我确信这是微不足道的。您是否调试过条件的执行方式?当您按下或不按下时,是否会调用 becomeFirstResponder?是否调用了委托方法本身?
-
为所有文本字段设置委托
-
代表被召唤。当我点击文本字段 6 时,它才起作用。
-
调试并检查您的条件如何根据您的 if 语句工作
-
检查 textFieldSix 是否有实例或其 nil
标签: ios swift keyboard uitextfield uitextfielddelegate