我的应用中的textField存在问题。如果用户开始输入数字,则离开应用程序,应用程序返回前景,不再显示该数字。但是,如果按下另一个数字,则会再次显示原始数字加上最近按下的数字。我尝试将委托设置为nil,将文本设置为viewDidDissappear中的nil,但这对问题没有影响。我错过了什么吗?
@interface SignIn : UIViewController <UITextFieldDelegate>
@property (strong, nonatomic) IBOutlet UITextField *numberField;
的.m
-(void)viewDidLoad{
self.numberField.delegate = self;
}
-(BOOL)textFieldShouldReturn:(UITextField *)textField
{
if (textField == self.numberField) {
[textField resignFirstResponder];
}
return YES;
}
- (void)textFieldDidBeginEditing:(UITextField *)textField
{
if (_authFailedLabel.text != nil) {
_authFailedLabel.text = nil;
}
}
请忽略图像上的不良裁剪。
第1步:用户输入数字,然后离开应用。应用程序仍然在后台运行。
第2步:用户返回应用。数字不再可见。
步骤3:用户输入一个额外的数字并重新显示原始数字,但数字不再居中。
步骤4:用户输入另一个号码,所有号码都会从视图中消失,但会在另一个号码上重新出现。
答案 0 :(得分:0)
对textFieldShouldReturn:
尝试返回NO而不是YES此外:
if (_authFailedLabel.text != nil) {
_authFailedLabel.text = nil;
}
将清除该标签的文本(实际上是数字标签?不确定您提供的代码示例)
您可能希望执行更类似的操作,而不是将其设置为nil:
if (![_authFailedLabel.text isEqualToString:@""]) {
_authFailedLabel.text = @"";
}
另外,尝试将其设置为@&#34; foo&#34; (或其他)代替,当你不想要它时,看看它是否已经清算。