UITextField:以编程方式进入但在文本字段中不可见的文本

UITextField:以编程方式进入但在文本字段中不可见的文本

问题描述:

我有一个奇怪的行为,它只出现在上周。我不使用IB,所有的控件都是在代码中创建的。UITextField:以编程方式进入但在文本字段中不可见的文本

我有一个键盘活动的文本字段。第一次加载文本字段并使用键盘时,一切正常。第二次使用它时,输入的文本不会显示在文本字段中。但是,该文本以编程方式在文本字段中。例如,我可以使用它来执行搜索。当键盘关闭时,文本出现。

我的一些UITextField文本没有对齐。例如,我写了“hello”,而不是象正常那样在域内居中显示,而是显示向下移动几个像素,直到文本底部被切掉。这几乎就好像另一种观点是通过模糊它来削减文本的底部。

我使用three20,但根据http://groups.google.com/group/three20/browse_thread/thread/d7c4bc1ee2f9590d#,Xcode怀疑是造成这个问题。我在两个不同的Mac上看到了这个行为,一个是Snow Leopard(10.6),另一个是Leopard(10.5)。

这是问题的样子在Xcode:

iPhone http://img22.imageshack.us/img22/3272/screenshotgi.png

这并不明显,但在搜索栏中输入文字。请注意,占位符文本不显示。但是,如果我点击Search,代码将使用输入的文本执行。

这是应用程序如何出现在模拟器:

Screenshot XCode http://img532.imageshack.us/img532/2572/capturadepantalla201002o.png

我终于找到原因了。

我从调用函数[textField becomeFirstResponder]。但我把它移动到viewDidAppear和一切工作正常...

+0

您应该点击此问题旁边的复选标记,以便系统知道它已被回答。 – TechZen 2010-02-27 00:07:23

+0

在我的情况下,我在'viewWillApear'里面调用'[textField becomeFirstResponder]'。如前所述,只有移动到'viewDidApear'时才能正常工作。 – Adrian 2016-05-14 16:41:46

我已经看到了文本字段和仿射变换这种情况发生。如果使用变换旋转文本字段,文本将显示在超级视图的看似随机的部分。如果使用变换来移动文本字段以为键盘腾出空间,那么您可能会将字段本身的嵌入式文本编辑器分开。这也可以解释为什么文本在代码中,因为文本字段的text属性不受UI可视布局的影响。

+0

我不旋转的意见。始终以纵向模式运行... – mamcx 2010-02-26 22:18:08