我有一个使用 Swift 和 iOS8 构建的应用程序。在我的 ViewController
中,我有两个文本字段。
我使用这段代码:
func textFieldShouldReturn(textField: UITextField) -> Bool {
if textField == self.textfield_A {
self.textfield_B.becomeFirstResponder()
}
if textField == self.textfield_B {
self.textfield_B.resignFirstResponder()
}
return true
}
效果:
我选择 textfield_A
并按下 Next 按钮 -> 光标跳转到 textfield_B
在 textfield_B
上,我按下完成按钮 -> 键盘将被隐藏。
一切正常。
但现在我做了一个更改,代码不再像这样工作了。
我将 textfield_A
更改为 textView
。
知道我必须如何修改我的代码吗?
最佳答案
你必须添加一个扩展,这是swift 3.0
的扩展extension UITextField {
class func connectFields(fields:[UITextField]) -> Void {
guard let last = fields.last else {
return
}
for i in 0 ..< fields.count - 1 {
fields[i].returnKeyType = .next
fields[i].addTarget(fields[i+1], action: #selector(UIResponder.becomeFirstResponder), for: .editingDidEndOnExit)
}
last.returnKeyType = .done
last.addTarget(last, action: #selector(UIResponder.resignFirstResponder), for: .editingDidEndOnExit)
}
}
添加这行代码后:
UITextField.connectFields(fields: [field1, field2, field3])
关于ios - Swift 下一个按钮更改文本字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32153220/