当 UITextfields 之间的更改焦点具有 secureTextEntry 为真时,shift 按钮闪烁

When change focus between UITextfields has secureTextEntry is true, shift button is flickering

我正在尝试将我的旧 objective-c 项目重建为 swift 项目。 我发现,当焦点在未保护的 UITextField 和已保护的 UITextField 之间发生变化时,shift 按钮会闪烁。不仅闪烁而且有效。所以 Keyboard 很快又改变了 Upper case 和 Lower case。它让用户觉得应用程序有错误。

我在新示例项目中尝试了同样的事情。它特别显示在韩语键盘中。有时它也会以英文键盘显示。

let tf1: UITextField = {
        let tf = UITextField()
        tf.translatesAutoresizingMaskIntoConstraints = false
        tf.placeholder = "tf1"
        return tf
    }()

    let tf2: UITextField = {
        let tf = UITextField()
        tf.translatesAutoresizingMaskIntoConstraints = false
        tf.placeholder = "tf2"
        tf.isSecureTextEntry = true
        return tf
    }()


    override func viewDidLoad() {
        super.viewDidLoad()
        view.addSubview(tf1)
        view.addSubview(tf2)

        NSLayoutConstraint.activate([
            tf1.centerXAnchor.constraint(equalTo: view.centerXAnchor),
            tf1.centerYAnchor.constraint(equalTo: view.centerYAnchor),
            tf1.widthAnchor.constraint(equalTo: view.widthAnchor, multiplier: 0.8),
            tf1.heightAnchor.constraint(equalToConstant: 50),
            tf2.centerXAnchor.constraint(equalTo: view.centerXAnchor),
            tf2.topAnchor.constraint(equalTo: tf1.bottomAnchor),
            tf2.widthAnchor.constraint(equalTo: tf1.widthAnchor),
            tf2.heightAnchor.constraint(equalTo: tf1.heightAnchor)

            ])

    }

这是我App中的原始情况。(由于gif无法显示状态,我制作的图像有点慢。)

这是示例应用程序。

我找不到修复它的方法。 你能给我一些建议吗?

这不是问题,它只会在您的 textField 语言不受支持 大写语言环境 时出现。

  • 因此,当您从 textField2 切换到 textFiled1 时,它会锁定 locale capitalisation,您可以使用 shift key [=22] 来维护它=]