UITextField 提示时键盘不显示

Posted

技术标签:

【中文标题】UITextField 提示时键盘不显示【英文标题】:Keyboard not showing when being prompted by UITextField 【发布时间】:2020-03-02 01:32:39 【问题描述】:

ios 13.2 中,我注意到我的键盘不再出现在模拟器和真实设备上的应用程序中。当我在 UITextField 内点击时,除了光标在文本字段内闪烁外,什么也没有发生。有其他人遇到这个问题或知道如何解决吗?

更新

问题源于删除故事板文件并以编程方式启动 rootViewController

        var windowScene = new UIWindowScene(session, connectionOptions);
        Window = new UIWindow(windowScene);

        Window.RootViewController = new ViewController();
        Window.MakeKeyAndVisible();

在那之后,我注意到键盘在新项目中不再显示。

【问题讨论】:

你有没有使用任何键盘通知或自定义类? 你有minimal, reproducible example吗? 嗨,如果回答有帮助,感谢您提前标记或投票。 *.^ 【参考方案1】:

关于模拟器:您可以先在 iOS 模拟器中查看设置

看看这个截图,确保没有选择使用硬件键盘。或者您可以选择它并再次取消选择它,然后键盘将显示。

重启应用检查是否可以显示键盘。

【讨论】:

【参考方案2】:

当您尝试使用编程方法在新的 SceneDelegate 中设置 rootViewController 时,这看起来像是一个错误,这与我们过去在 AppDelegate 中的做法相反。

我通过保留设置 rootViewController 的愚蠢情节提​​要并暂时保持 SceneDelegate.cs 干净并且我的键盘再次工作来解决这个问题。感谢您的所有回答。

【讨论】:

很高兴听到这个消息! *.^ 肯定是这样,但我已经完全删除了情节提要的东西。如何添加故事板,然后设置新的 rootViewController?【参考方案3】:

设置文本文件委托。

@IBOutlet weak var urlTextField: UITextField!

override func viewDidLoad() 
    self.urlTextField.delegate = self // urlTextField it is your textfield outlet 
    

如果删除这行代码,键盘不会出现,但如果存在,键盘会出现。

【讨论】:

以上是关于UITextField 提示时键盘不显示的主要内容,如果未能解决你的问题,请参考以下文章

当我使 UIAlertView 中的 UITextField 成为第一响应者时,为啥键盘不显示?

编辑开始时更改 UITextField 背景

点击 UITextField 时既不显示键盘也不显示光标

为啥显示键盘时 UIScrollView 不滚动?

如何永久地显示从UITextField输入的数据到标签?

键盘可见时,将输入附件视图添加到UITextField