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 ..我已经试过你的代码,它工作正常..