UITextField文本在每次其他击键时都会消失

时间:2013-10-14 02:28:38

标签: iphone ios xcode ios7 uitextview

以下是现象视频: 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

6 个答案:

答案 0 :(得分:31)

我遇到了几乎相同的问题。有时文字正在消失。

我在xib文件的视图层次结构中更改了UITextField的位置后解决了这个问题。

enter image description here

答案 1 :(得分:11)

我遇到了同样的问题。我的解决方案是从[_textField becomeFirstResponder]方法中删除- (void)viewWillAppear:(BOOL)animated。只有在以模态方式呈现viewcontroller时才会出现此错误。

答案 2 :(得分:2)

UITextField becomeFirstResponderviewWillAppear移至viewWillLayoutSubviews,以便根据我的情况修改此问题。我还确保在resignFirstResponder上添加UITextField来解除视图(以模态方式呈现)的操作。

答案 3 :(得分:0)

尝试使用UITextField的所有Delegate方法。并且请让我知道您点击Done Button时要做什么,只设置其他任何内容的文本,或者如果您与我共享所有代码,那么我可以帮助您

请用我的方法替换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;


}

答案 4 :(得分:0)

解决了这个问题。

在我的故事板上,我将文本从'Plain'切换为'Attributed',然后再切换回'Plain'。

答案 5 :(得分:0)

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

经过一些试验和错误后,我发现当我将UITextField的borderStyle设置为UITextBorderStyleRoundedRect时,该错误消失了,遗憾的是这不是我想要的,我想要一个简单的白色背景。

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