我在IOS点击键盘上的下一个按钮但是它无法正常工作时,已经做了一切将焦点从一个textField
应用到另一个{
我从布局和代码中为每个textField
到ViewController
制作代理。
class ViewController: UIViewController, UITextFieldDelegate {
@IBOutlet weak var usernameTextField: UITextField!
@IBOutlet weak var passwordTextField: UITextField!
override func viewDidLoad() {
super.viewDidLoad()
usernameTextField.delegate = self
passwordTextField.delegate = self
}
func textFieldShouldReturn(textfield: UITextField!) -> Bool
{
textfield.resignFirstResponder()
if (textfield == self.usernameTextField) {
self.usernameTextField.becomeFirstResponder()
}
else if (textfield == self.passwordTextField) {
self.passwordTextField.becomeFirstResponder()
}
return true
}
这种情况有什么不对?
答案 0 :(得分:2)
您正在使用Swift 3并且UITextFieldDelegate
方法的签名已更改,因此您需要将_
作为第一个参数标签传递。所以你的方法textFieldShouldReturn(_:)
应该是这样的。
func textFieldShouldReturn(_ textField: UITextField) -> Bool {
if (textfield == self.usernameTextField) {
self.passwordTextField.becomeFirstResponder()
}
else {
textfield.resignFirstResponder()
}
return true
}
答案 1 :(得分:0)
如果调用textFieldShouldReturn,那么你必须写成:
if (textfield == self.usernameTextField)
{
self. passwordTextField.becomeFirstResponder()
}
答案 2 :(得分:0)
我已根据您的要求更新了
尝试使用:
func textFieldShouldReturn(textfield: UITextField!) -> Bool
{
if (textfield == self.usernameTextField) {
self.passwordTextField.becomeFirstResponder()
}
else if (textfield == self.passwordTextField) {
textfield.resignFirstResponder()
}
return true
}
keyboard
由于呼叫 resignFirstResponder
而被解雇。它与 textFieldShouldReturn
的返回值完全没有关系。这就是为什么需要写满意的条件。
答案 3 :(得分:0)
Try this...
class ViewController: UIViewController, UITextFieldDelegate {
var usernameTextField: UITextField!
var passwordTextField: UITextField!
override func viewDidLoad() {
super.viewDidLoad()
usernameTextField.delegate = self
passwordTextField.delegate = self
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
func textFieldShouldReturn(textfield: UITextField!) -> Bool
{
if (textfield == self.usernameTextField) {
self.usernameTextField.becomeFirstResponder()
}
else if (textfield == self.passwordTextField) {
self.passwordTextField.resignFirstResponder()
}
return true
}
}