【问题标题】:iPhone keyboard doesn't appear when entering a UITextField输入 UITextField 时不出现 iPhone 键盘
【发布时间】:2011-02-14 21:25:48
【问题描述】:

这一定是某种我看不到的新手错误,我将不胜感激有关检查内容或查看位置的提示。

我遵循了一个具有 UITextField 的 iPhone 教程,确保我为文本字段连接了 IBOutlet,并且它似乎可以正确编译(没有错误或警告)。但是当我在模拟器下运行它,然后在该字段中单击时,我没有得到键盘,所以我无法在该字段中输入任何内容。

我尝试在网站上搜索类似的问题,但我发现的只是一些问题,开发人员试图设置一些具有多个控制器的复杂 UI,而且似乎是同一个问题,但是最初的发布者只是说他通过启动一个新项目并将代码移植过来解决了这个问题。我想找到一个实际的解决方案,所以当这个问题再次出现时,我不必尝试随机重建项目。

谢谢!

【问题讨论】:

  • 遇到同样的问题,我在 AppStore 上已经有 4 个应用程序,这是我第一次看到这个!快把我逼疯了。

标签: iphone keyboard uitextfield


【解决方案1】:

只是为了在解决此问题时涵盖您的所有基础,请确保不是 iOS 模拟器导致此问题。我在输入 UITextView 时也没有看到键盘出现,事实证明模拟器允许您在显示虚拟键盘和让您使用笔记本电脑的键盘之间切换。

您可以通过以下方式在两者之间切换:

Hardware > Keyboard > Toggle Software Keyboard

或按 Cmd + K

(我的来源:https://stackoverflow.com/a/24401535/1700540

因此,请确保您没有错误地将模拟器切换为仅使用您的物理键盘! ...就像我一样

【讨论】:

  • 在选择模拟器时似乎检查了硬件键盘,我输入 cmd-K 以为我正在清除 Xcode 临时文件。相反,模拟器捕获 cmd-K 并打开硬件键盘。在模拟器中再次输入它或使用模拟器中的菜单选项“硬件 > 键盘 > 切换软件键盘”,如上所述将其关闭。希望这会有所帮助。
【解决方案2】:

确保父容器已启用用户交互。对单个控件进行此项检查是不够的。 UIView 可能会无意中取消选中它。

您应该检查的一件事是确保包含视图(包含所有控件的 UIView),即 Interface Builder nib 查看器中的视图图标,已启用 用户交互 勾选。如果父容器没有勾选此项,即使个别控件勾选了,您也会看到此行为。

【讨论】:

  • 谢谢!我的视图未选中启用用户交互。我正在阅读 APress book,当我应该确保未选中我添加的 Image View 时,我取消了 View 的选中。
【解决方案3】:

连接到 UITextField 的委托是什么?您是否确定委托函数,尤其是 - (BOOL)textFieldShouldBeginEditing:(UITextField *)textField 正在返回正确的内容(在本例中为“是”)?

【讨论】:

  • 本教程不要求与委托建立连接,只要求与视图控制器中的 IBOutlet 建立连接。我已经完成了另一个教程,该教程也有一个没有委托的 UITextField,只是连接到视图控制器的 IBOutlet,并且那个工作。如果有任何帮助,我遇到困难的教程来自 Mark 和 LaMarche 的“Beginning iPhone 3 Development”。
【解决方案4】:

不确定这是否是其他人的问题,但我在模态显示的 TabBar 控制器中使用了 TextField,并在我的主视图控制器中添加了摇动手势。不幸的是,这意味着我在 viewDidLoad 中设置了 [self becomeFirstResponder]。在那种情况下,当我的模态视图显示时,它并没有成为第一响应者,因此键盘没有显示。

为了修复它,我在调用模态显示之前添加了 [self resignFirstResponder],一切都很好!是的(只花了五天时间就弄清楚了)。

【讨论】:

    【解决方案5】:

    基本上,您唯一需要做的就是在 .h 中声明文本字段

    IBOutlet UITextField *textField

    然后在属性中声明同名

    @property (nonatomic, retain) UITextField *textField;

    然后确保你在.m中合成

    @synthesize textField;

    那么你必须在界面生成器中链接该字段

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-08-09
      • 1970-01-01
      • 2011-04-05
      • 2010-12-19
      • 2018-01-15
      • 2011-12-15
      • 2012-01-02
      • 1970-01-01
      相关资源
      最近更新 更多