如何在 Swift 中手动启用/禁用键盘 Return 键?

2023-11-21

这个问题与这些问题不重复:

  • 如何禁用/启用 UITextField 中的返回键?

  • 如何启用或禁用键盘返回键

  • 在 iOS 中按需启用和禁用键盘返回键

我有两个TextFields.

@IBOutlet weak var textField1: UITextField!
@IBOutlet weak var textField2: UITextField!
  • textField1Next按钮如返回键;

  • textField2Go按钮如返回键;

文本字段1

文本字段2

我想启用Go如果两个 TextField 都不为空,则单击第二个 TextField 的按钮。

我尝试使用someTextField.enablesReturnKeyAutomatically with TextFieldDelegate,但没有成功。

谢谢你的帮助。


Below: textField2被禁用,只要textField1是空的。如果后者非空,我们启用textField2,但启用Go按钮仅当textField2是非空的(通过.enablesReturnKeyAutomatically财产),

/* ViewController.swift */
import UIKit

class ViewController: UIViewController, UITextFieldDelegate {
    @IBOutlet weak var textField1: UITextField!
    @IBOutlet weak var textField2: UITextField!

    override func viewDidLoad() {
        super.viewDidLoad()

        // text field delegates
        textField1.delegate = self
        textField2.delegate = self

        // set return key styles
        textField1.returnKeyType = UIReturnKeyType.Next
        textField2.returnKeyType = UIReturnKeyType.Go

        // only enable textField2 if textField1 is non-empty
        textField2.enabled = false

        // only enable 'go' key of textField2 if the field itself is non-empty
        textField2.enablesReturnKeyAutomatically = true
    }

    // UITextFieldDelegate
    func textFieldShouldReturn(textField: UITextField) -> Bool {

        if (textField1.text?.isEmpty ?? true) {
            textField2.enabled = false
            textField.resignFirstResponder()
        }
        else if textField == textField1 {
            textField2.enabled = true
            textField2.becomeFirstResponder()
        }
        else {
            textField.resignFirstResponder()
        }

        return true
    }
}

运行如下:

enter image description here

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Swift 中手动启用/禁用键盘 Return 键? 的相关文章

随机推荐