我已经以编程方式创建了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
答案 0 :(得分:0)
你说“这似乎是UITextFieldDelegate的一个线程问题......”
你是什么意思,线程问题? iOS中的UIView对象不是线程安全的。您是否尝试从后台线程更新UI?如果是这样,那就是你的问题。