我有一种奇怪的行为,只是在上周出现了。我不使用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
答案 0 :(得分:2)
我终于找到了原因。
我在[textField becomeFirstResponder]
调用的函数中调用loadView
。但我把它移到viewDidAppear
,一切正常......
答案 1 :(得分:1)
我见过这种情况发生在文本字段和仿射变换中。如果使用变换旋转文本字段,则文本将显示在超视图的看似随机的部分中。如果使用变换移动文本字段以为键盘腾出空间,则可能是从字段本身中分离嵌入式文本编辑器。这也可以解释为什么文本在代码中,因为文本字段的文本属性不受UI的可视布局的影响。