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

时间:2010-02-26 21:44:38

标签: iphone xcode osx-snow-leopard uitextfield three20

我有一种奇怪的行为,只是在上周出现了。我不使用IB,所有控件都是用代码创建的。

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

我的部分UITextField文本未对齐。例如,我写“hello”,而不是像正常那样在字段内显示居中,而是向下移动几个像素到文本底部被切除的程度。这几乎就像是另一种观点通过模糊它来斩断文本的底部。

我使用three20,但根据http://groups.google.com/group/three20/browse_thread/thread/d7c4bc1ee2f9590d#,Xcode被怀疑导致了这个问题。我看到了2个不同的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

2 个答案:

答案 0 :(得分:2)

我终于找到了原因。

我在[textField becomeFirstResponder]调用的函数中调用loadView。但我把它移到viewDidAppear,一切正常......

答案 1 :(得分:1)

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