【问题标题】:UITextField text disappears on every other keystrokeUITextField 文本在每隔一次击键时消失
【发布时间】:2013-10-21 13:43:09
【问题描述】:

以下是该现象的视频: http://youtu.be/c0TP8YVF9TE

如视频所示,exampleTextView.text 中的值并没有丢失。它只是隐藏了所有其他按键。

尝试的解决方案: 我不会在程序期间将 exampleTextView.text 值设置为某个值,除非在按下返回键之后(并且注释掉该行不会改变任何内容)。

我已经设置了:

self.exampleTextView.clearsOnBeginEditing=NO;
self.exampleTextView.clearsContextBeforeDrawing=NO;
self.exampleTextView.clearsOnInsertion=NO;

编辑: 这是我的代码: https://gist.github.com/andrewschreiber/6970283

【问题讨论】:

  • 如果您向我们展示您的代码,我认为社区人员可以帮助您。
  • @Andrew Schreiber,请上传您的项目,以便人们找到确切的解决方案。

标签: iphone ios xcode ios7 uitextview


【解决方案1】:

尝试使用 UITextField 的所有 Delegate 方法。并且请让我知道您想对单击完成按钮做什么,只设置其他任何内容的文本,或者如果您与我分享所有代码,那么我可以帮助您

请用我的方法替换你的 textFieldShouldReturn 方法,并在你的代码中实现 textFieldShouldBeginEditing 方法,它的工作正常

 -(BOOL) textFieldShouldReturn:(UITextField *) textField {

          [textField resignFirstResponder];
    }


- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField {


    [UIView beginAnimations:nil context:nil];
    [UIView setAnimationDuration:0.5];


    [UIView commitAnimations];

    return YES;


}

【讨论】:

  • 我试过了,在 textFieldShouldReturn 中都使用了“return YES”和“return NO”。这并没有解决问题,但给了我一些尝试的想法。
【解决方案2】:

解决了这个问题。

在我的故事板上,我将文本从“普通”切换到“属性”,然后再次切换回“普通”。

【讨论】:

  • 这个解决方案对我不起作用。 SbClx 的另一种解决方案做到了。
  • 好的,因为其他人似乎有相同的结果,所以更改了正确答案。
【解决方案3】:

我几乎遇到了同样的问题。有时文字会消失。

我在xib文件的视图层次结构中改变UITextField的位置后解决了。

【讨论】:

  • 这很奇怪。澄清一下,如果您想在viewWillAppear 中调用becomeFirstResponder,这可以解决问题。下面的答案也可以将电话转移到viewDidAppear
  • Apple 的一个可耻的错误
  • 这仍然解决了 Xcode 7.0.1 故事板的问题。谢谢!
  • 这不是我的情况。我的在列表的底部。 user3339688 的另一个解决方案确实对我有用。
  • 这对我有用。将文本字段移动到最顶层的 ui 元素有效。疯了。
【解决方案4】:

我也遇到了同样的问题。我的解决方案是从- (void)viewWillAppear:(BOOL)animated 方法中删除[_textField becomeFirstResponder]。仅当视图控制器以模态方式呈现时才会出现此错误。

【讨论】:

  • 是的,如果您想让该文本字段成为第一响应者,而不是在 viewDidAppear 中而不是 viewWillAppear 中。你的问题会解决的。
【解决方案5】:

UITextFieldbecomeFirstResponderviewWillAppear 移动到viewWillLayoutSubviews 解决了这个问题。我还确保在 UITextField 上添加 resignFirstResponder 到关闭视图的操作(以模态方式呈现)。

【讨论】:

  • 我什至不得不将它放在 viewDidAppear 中。否则会导致文本不可见。
【解决方案6】:

@SbClx 的解决方案对我有用,但我还有另一个解决方法也可以:将 UITextField 的背景设置为您喜欢的任何 UIImage。

经过反复试验,我发现当我将UITextField的borderStyle设置为UITextBorderStyleRoundedRect时,这个bug就消失了,很遗憾这不是我想要的,我想要一个简单的白色背景。

UITextField.borderStyle 的文档指出:如果该值设置为 UITextBorderStyleRoundedRect 样式,则与文本字段关联的自定义背景图像将被忽略。 所以我猜背景图片也可能与这个错误有关。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-06-15
    • 1970-01-01
    • 1970-01-01
    • 2021-12-01
    • 1970-01-01
    • 2016-01-25
    • 1970-01-01
    • 2014-09-29
    相关资源
    最近更新 更多