iOS解雇键盘,UILabel故障

我在开发的iOS应用程序中遇到了一些问题。

一个是解散键盘:当它在另外两个屏幕上工作时,有一个屏幕不会由于某种原因而被解雇:

Login.m

#import "Login.h" @interface Login() @end @implementation Login -(void) viewdDidLoad{ [super viewDidLoad]; UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(dismissKeyboard)]; [self.view addGestureRecognizer:tap]; } -(void)dismissKeyboard { [_username resignFirstResponder]; [_password resignFirstResponder]; [_birth resignFirstResponder]; } @end 

而我的第二个问题是,屏幕顶部的UILabel将无法加载,尽pipe在其他屏幕上工作:

Login.m

 #import "Login.h" @interface Login() @end @implementation Login -(void) viewdDidLoad{ [super viewDidLoad]; _etiqueta = @"Introdueix el teu nom d'usuari, la contrasenya, i la teva data de naixement"; self.label.text = self.etiqueta; self.label.numberOfLines = 4; self.label.textColor = [UIColor blackColor]; } @end 

我的UILabel也是在故事板上创build的,是IBOutlet,并且确保它正确链接。

你能帮我解决这两个问题吗?

使用这种方法解除键盘

 -(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { [self.view endEditing:YES]; } 

否则调用textDelegate方法

 - (BOOL)textFieldShouldReturn:(UITextField *)textField { [textField resignFirstResponder]; return YES; } 

对于多个文本字段,你也可以尝试这样的事情。 您可以跟踪最活跃的文本字段,然后辞职响应者。

 -(void)textFieldDidBeginEditing:(UITextField *)textField { self.activeField = textField; } -(void)textFieldDidEndEditing:(UITextField *)textField { self.activeField = nil; } 

然后在select器中解散它

 -(void) dismissKeyboard { [self.activeField resignFirstResponder]; } 

为UILabel ..我已经试过你的代码,它工作正常..