这一定是某种新手的错误,我无法看到,我会很感激有关检查什么或在哪里看的提示。
我已经关注了一个有UITextField的iPhone教程,确保我将IBOutlet连接到文本字段,它似乎正确编译(没有错误或警告)。但是当我在模拟器下运行它并点击该字段时,我没有得到键盘,因此我无法在该字段中输入任何内容。
我已经尝试在网站上搜索类似的问题,而我发现的只是一些问题,开发人员正在尝试使用多个控制器设置一些复杂的UI,而且似乎是同一个问题,但是原始海报简单地说他通过启动一个新项目并移植代码来解决它。我想找到一个实际的解决方案,所以当这个问题再次出现时,我不必尝试随机重建项目。
谢谢!
答案 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;
然后您必须在界面构建器
中链接该字段