UITextField不会更新

时间:2013-12-29 22:05:12

标签: ios uitextfield uitextfielddelegate

我已经以编程方式创建了2个UITextfield,我希望在编辑之前将其清除。问题是当我在UITextfield上进行clic时,它们很清楚(我用NSLog检查它)但View不会更新。

当我使用键盘编辑文本字段时,新字符串似乎附加了现有字符串(而不是清除和编辑),但实际上文本字段不会编辑。

我已经阅读了与此问题相关的所有论坛,但我找不到解决方案。它似乎是UITextFieldDelegate的一个线程问题......

请注意,UITextFields嵌入在scrollView中。

我已经在我的textfields上尝试了setNeedsDisplay,clearsOnEditing属性,将代码放在“textFieldsShouldBeginEditing”和“textFieldsDidBeginEditing”方法以及许多其他方面都没有成功。一些帮助会很酷!

相对于textfields的代码:

@implementation gaineViewController


- (UITextField *)hauteurText {
if(!_hauteurText){
_hauteurText = [[UITextField alloc]init];
_hauteurText.clearsOnBeginEditing = YES;
_hauteurText.delegate = self;
_hauteurText.keyboardType = UIKeyboardTypeNumbersAndPunctuation;

}
return _hauteurText;
}


- (UITextField *)largeurText {
if(!_largeurText){
_largeurText = [[UITextField alloc]init];
_largeurText.clearsOnBeginEditing = YES;
_largeurText.delegate = self;
_largeurText.keyboardType = UIKeyboardTypeNumbersAndPunctuation;
}

return _largeurText;
}



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

if ([textField isEqual:self.largeurText]) {
NSLog(@"%@",self.largeurText.text);
self.largeurText.text=@"";
NSLog(@"%@",self.largeurText.text);
}

if ([textField isEqual:self.hauteurText]) {
NSLog(@"%@",self.hauteurText.text);
self.hauteurText.text=@"";
NSLog(@"%@",self.hauteurText.text);
}


return YES;
}

@end

1 个答案:

答案 0 :(得分:0)

你说“这似乎是UITextFieldDelegate的一个线程问题......”

你是什么意思,线程问题? iOS中的UIView对象不是线程安全的。您是否尝试从后台线程更新UI?如果是这样,那就是你的问题。