【问题标题】:UITextField: Text Entered Programmatically but not Visible in the Text FieldUITextField:以编程方式输入但在文本字段中不可见的文本
【发布时间】:2010-02-26 21:44:37
【问题描述】:

我有一个奇怪的行为,最近一周才出现。我不用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,代码会使用输入的文本执行。

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

【问题讨论】:

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


    【解决方案1】:

    我终于找到原因了。

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

    【讨论】:

    • 您应该点击此问题旁边的复选标记,以便系统知道它已被回答。
    • 在我的情况下,我在 viewWillApear 中调用了 [textField becomeFirstResponder]。如前所述,它只有在移至 viewDidApear 时才能正常工作。
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-12-31
      • 2014-02-28
      • 2010-10-13
      • 1970-01-01
      • 2017-11-23
      • 1970-01-01
      相关资源
      最近更新 更多