以下是现象视频: 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
答案 0 :(得分:31)
我遇到了几乎相同的问题。有时文字正在消失。
我在xib文件的视图层次结构中更改了UITextField的位置后解决了这个问题。
答案 1 :(得分:11)
我遇到了同样的问题。我的解决方案是从[_textField becomeFirstResponder]
方法中删除- (void)viewWillAppear:(BOOL)animated
。只有在以模态方式呈现viewcontroller时才会出现此错误。
答案 2 :(得分:2)
将UITextField
becomeFirstResponder
从viewWillAppear
移至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有关。