进入UITextField时不会出现iPhone键盘

时间:2010-05-03 01:37:51

标签: iphone keyboard uitextfield

这一定是某种新手的错误,我无法看到,我会很感激有关检查什么或在哪里看的提示。

我已经关注了一个有UITextField的iPhone教程,确保我将IBOutlet连接到文本字段,它似乎正确编译(没有错误或警告)。但是当我在模拟器下运行它并点击该字段时,我没有得到键盘,因此我无法在该字段中输入任何内容。

我已经尝试在网站上搜索类似的问题,而我发现的只是一些问题,开发人员正在尝试使用多个控制器设置一些复杂的UI,而且似乎是同一个问题,但是原始海报简单地说他通过启动一个新项目并移植代码来解决它。我想找到一个实际的解决方案,所以当这个问题再次出现时,我不必尝试随机重建项目。

谢谢!

5 个答案:

答案 0 :(得分:17)

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

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

Hardware> Keyboard> Toggle Software Keyboard

或按 Cmd + K

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

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

答案 1 :(得分:6)

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

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

答案 2 :(得分:3)

连接到UITextField的委托是什么?你确定委托函数,特别是- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField 正在返回正确的东西(在这种情况下是YES)吗?

答案 3 :(得分:1)

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

为了解决这个问题,我在调用模态显示之前添加了[self resignFirstResponder],一切都很好!是的(只花了五天才算出来)。

答案 4 :(得分:1)

基本上,您唯一需要做的就是在.h

中声明文本字段

IBOutlet UITextField *textField

然后在属性

中声明相同的名称

@property (nonatomic, retain) UITextField *textField;

然后确保你在.m

中合成

@synthesize textField;

然后您必须在界面构建器

中链接该字段