ios - 如何在 Swift 中手动启用/禁用键盘返回键?

标签 ios swift keyboard uitextfield

This question is not duplicated from these:

我有两个 TextFields

@IBOutlet weak var textField1: UITextField!
@IBOutlet weak var textField2: UITextField!
  • textField1 有类似返回键的下一步按钮;

  • textField2 有像 Return 键一样的 Go 按钮;

textField1

textField2

只要两个 TextField 都不为空,我想启用第二个 TextField 的 Go 按钮。

我尝试将 someTextField.enablesReturnKeyAutomaticallyTextFieldDelegate 一起使用,但没有成功。

谢谢你的帮助。

最佳答案

下面:只要 textField1 为空,textField2 就会被禁用。如果后者非空,我们启用 textField2,但仅当 textField2 非空时才启用 Go 按钮(通过 .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

关于ios - 如何在 Swift 中手动启用/禁用键盘返回键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35350243/

相关文章:

iphone - Google 网络字体在 iPhone 5 上加载不一致

ios - 无法使用 Swift Closure 作为参数调用函数

c++ - 在所有情况下将 keyPressEvent 传播到顶层 QWidget

ios - 如何获得年份序列,因为我只获得月份序列

ios - 如何以编程方式更新约束并解决登录屏幕的键盘问题

objective-c - 为什么在swift中使用@Objc?

c# - Xcode:如何将 Unity 游戏添加到现有的 iOS 应用程序?

python - 使用 Python 作为界面时的奇怪控件

c# - TextBox 不会在空格键上触发 KeyDown 事件

ios - Xamarin UITableVIew-扩展并折叠一行