我试图在iOS应用中隐藏键盘。我已经花了几个小时寻找它,而且我已经尝试了很多东西,所以我非常绝望。
我的代码如下:
RNViewController.h
@interface RNViewController : UIViewController <UITextFieldDelegate> {
UITextField *textField;
...
}
RNController.m
- (void)viewDidLoad {
textField.delegate = self;
textField.returnKeyType = UIReturnKeyDone;
}
- (BOOL)textFieldShouldReturn:(id)sender {
NSLog(@"Entering in textFieldShouldReturn ");
[textField resignFirstResponder];
return YES;
}
- (BOOL)textViewShouldReturn:(id)sender {
NSLog(@"Entering in textViewShouldReturn ");
[textField resignFirstResponder];
return YES;
}
- (IBAction)textFieldDoneEditing:(id)sender {
NSLog(@"Entering in textFieldDoneEditing ");
[sender resignFirstResponder];
}
- (IBAction)textViewDoneEditing:(id)sender {
NSLog(@"Entering in textViewDoneEditing ");
[sender resignFirstResponder];
}
- (BOOL)disablesAutomaticKeyboardDismissal {
return NO;
}
编辑:textField是以这样的方式创建的:
- (void) showPreguntaTexto: (Pregunta *) pregunta {
UITextField *textField = [[UITextField alloc] initWithFrame:CGRectMake(CGRectGetWidth(baseView.bounds)*0.1, offset + CGRectGetWidth(baseView.bounds)*0.05, CGRectGetWidth(baseView.bounds) - CGRectGetWidth(baseView.bounds) * 0.2 , CGRectGetWidth(baseView.bounds)*0.5)];
textField.delegate = self;
[vistaAnterior addSubview:textField];
}
我的观点是baseView(包含不变的元素)和vistaAnterior,它包含内容(和textField)和更改。
试试这个,它显示输入到textFieldShouldReturn,但键盘不会消失。
为什么会这样?请帮忙!!
答案 0 :(得分:1)
辞退文本字段的发件人而不是您的实例。 UITextField *textField
不是IBOutlet(故事板)或是在代码中创建的,因此textField
为零(除非您在其他地方创建它并且未显示代码)。
- (BOOL)textViewShouldReturn:(id)sender {
NSLog(@"Entering in textViewShouldReturn ");
[sender resignFirstResponder];
return YES;
}
答案 1 :(得分:0)
您是否从故事板中在RN ViewController中设置了文本字段委托。这可能是键盘无法隐藏的原因。