如何监听UIReturnKeyType.接下来是Swift iOS



当用户按下键盘上的next时,我想从当前UITextField移动到下一个UITextField, ureturnkeytype被设置为ureturnkeytype。下一个

我是这样设置UITextField的

username.returnKeyType = UIReturnKeyType.Next
username.textColor = UIColor.whiteColor()
username.placeholder = "Username"
username.borderStyle = UITextBorderStyle.RoundedRect
uUsername.textAlignment = NSTextAlignment.Center
username.backgroundColor = UIColor.lightGrayColor()
username.font = UIFont(name: "Avenir Next", size: 14)
username.autocapitalizationType = UITextAutocapitalizationType.None
username.autocorrectionType = UITextAutocorrectionType.No

您必须配置UITextFieldDelegate方法textFieldShouldReturn:。在此方法中,您可以检查返回的文本字段,并相应地重新分配第一响应者状态。当然,这意味着你必须分配你的类作为文本字段的委托。

的例子:

class MyClass: UITextFieldDelegate {
    func setup() { // meaningless method name
        textField1.delegate = self
        textField2.delegate = self
    }
    func textFieldShouldReturn(textField: UITextField) -> Bool {
        if (textField === textField1) {
            textField2.becomeFirstResponder()
        } else if (textField === textField2) {
            textField2.resignFirstResponder()
        } else {
            // etc
        }
        return true
    }
}

按照以下步骤操作:

1)您将需要在xib/Storyboard或代码中的文本字段的增量序列中设置标签。

2)设置每个文本域的委托。

3)然后将以下代码粘贴到视图控制器中以获得所需的效果:
func textFieldShouldReturn(textField: UITextField) -> Bool
{
    let nextTag: Int = textField.tag + 1
    let nextResponder: UIResponder? = textField.superview?.superview?.viewWithTag(nextTag)
    if let nextR = nextResponder
    {
        // Found next responder, so set it.
        nextR.becomeFirstResponder()
    }
    else
    {
        // Not found, so remove keyboard.
        textField.resignFirstResponder()
    }
    return false
}

希望这有帮助!!

如果你有两个textfield:——textField1- textField2

func textFieldShouldReturn(textField: UITextField!) -> Bool {
    textField1.resignFirstResponder()
    textField2.becomeFirstResponder()
    return true
}
class ViewController: UIViewController,UITextFieldDelegate    //set delegate to class
@IBOutlet var txtValue: UITextField    //create a textfield variable
override func viewDidLoad() { 
super.viewDidLoad() 
txtValue.delegate = self //set delegate to textfile 
}
func textFieldShouldReturn(textField: UITextField!) -> Bool {   //delegate method
return true
}

最新更新