ios - 点击另一个 UITextField 后自动禁用键盘

标签 ios swift swift3 uikeyboard

假设我的应用程序中有 2 个文本字段。第一个文本字段用于输入电子邮件(显示键盘),第二个文本字段用于输入密码(无需显示键盘)。

当我点击第一个文本字段时,键盘出现,接下来我按下第二个文本字段(这将传递给另一个 UI 和 Controller )以输入 PIN。所以它在不同的页面上,我使用协议(protocol)在 Controller 之间传递值。

我已经实现了 self.view.endEditing(true),如果我在 UI 中的任何地方按下以关闭键盘,它就可以正常工作。

问题是,当我点击第一个文本字段并立即点击第二个文本字段时,没有点击 UI 上的任何地方。来自第一个文本字段的键盘不会自动关闭并卡在另一个 Controller 和页面中。

那么如何禁用第二个 TextView 的键盘。因为我最终不需要它。

这里有一些代码。

此代码是当我编辑第二个文本字段时自动定位到另一个 Controller 。

//Implement UITextFieldDelegate
extension LoginViewController: UITextFieldDelegate{

    func textFieldDidBeginEditing(_ textField: UITextField) {
        let secondViewController = self.storyboard?.instantiateViewController(withIdentifier: "EnterMpinViewController") as! EnterMpinViewController
        secondViewController.pinProtocol = self
        textField.resignFirstResponder()
        self.navigationController?.pushViewController(secondViewController, animated: true)

}

最佳答案

实现 UITextField Delegate 方法并在文本字段是您的另一个文本字段时返回 false

 func textFieldShouldBeginEditing(_ textField: UITextField) -> Bool {
        if textField == yourAnotherTextFiled {

            return false
        }
        return true
    }

关于ios - 点击另一个 UITextField 后自动禁用键盘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44197217/

相关文章:

ios - UIView/应用渐变时无法显示圆角半径

ios - 界面测试失败 : Multiple Matches Found Error

当 WiFi 处于事件状态时,iOS 可达性报告没有 WiFi

ios - Obj-C - Xcode 控制台中的 TIC 读取状态?

ios - 获取我在 iPhone 中的当前位置

ios - 在后台线程写入 Realm 后,主线程看不到更新的数据

ios - 在不剪切内容的情况下减小 UIView 的大小

ios - swift2解密MD5

ios - 追加时替换 URL

ios - 更新变量的 NSUserDefaults