0

我有一个奇怪的行为,直到上周才出现。我不使用 IB,所有控件都是在代码中创建的。

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

我的一些 UITextFields 有未对齐的文本。例如,我写“你好”,而不是像往常一样在字段内居中显示,而是显示向下移动几个像素,直到文本底部被截断。就好像另一个视图通过遮蔽文本来切断文本的底部。

我用的是three20,但是根据http://groups.google.com/group/three20/browse_thread/thread/d7c4bc1ee2f9590d#,怀疑是Xcode引起的。我在 2 台不同的 mac 上看到了这种行为,一台使用 Snow Leopard (10.6) 运行,另一台使用 Leopard (10.5)。

这就是问题在 Xcode 中的样子:

苹果手机

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

这是应用程序在模拟器中的显示方式:

截图 XCode

4

2 回答 2

2

我终于找到原因了。

我调用[textField becomeFirstResponder]了一个名为 from 的函数loadView。但我把它移到了viewDidAppear,一切正常......

于 2010-02-26T23:12:28.280 回答
1

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

于 2010-02-26T22:00:47.380 回答