ObjC iOS11:成为第一个响应者在inputAccessoryView当文本字段不露面
问题描述:
所以我有这样的代码来创建我inputAccessoryView当键盘显示出来:ObjC iOS11:成为第一个响应者在inputAccessoryView当文本字段不露面
self.toolbar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, 1024, 44)];;
self.toolbar.backgroundColor = [UIColor blueColor];
NSMutableArray *toolbarItems = [[NSMutableArray alloc] init];
UILabel *nrLabel = [[UILabel alloc] initWithFrame:CGRectMake(7, 3, 140, 21)];
nrLabel.text = @"Number:";
[toolbarItems addObject:[[UIBarButtonItem alloc] initWithCustomView:nrLabel]];
self.nrTextField = [[UITextField alloc] initWithFrame:CGRectMake(8, 8, 140, 28)];
self.nrTextField.backgroundColor = [UIColor whiteColor];
[toolbarItems addObject:[[UIBarButtonItem alloc] initWithCustomView:self.nrTextField]];
UILabel *amountLabel = [[UILabel alloc] initWithFrame:CGRectMake(7, 3, 100, 21)];
amountLabel.text = @"Amount:";
[toolbarItems addObject:[[UIBarButtonItem alloc] initWithCustomView:amountLabel]];
self.amountTextField = [[UITextField alloc] initWithFrame:CGRectMake(8, 8, 100, 28)];
self.amountTextField.backgroundColor = [UIColor whiteColor];
[toolbarItems addObject:[[UIBarButtonItem alloc] initWithCustomView:self.amountTextField]];
self.toolbar.items = toolbarItems;
self.toolbar.autoresizingMask = UIViewAutoresizingFlexibleWidth;
[self.nrTextField becomeFirstResponder];
return self.toolbar;
它,只要我不工作正常告诉nrTextField成为第一响应者。这是不合法的吗?
答
由于这个UIToolbar应该是键盘的扩展,我不得不在正确的时间调用becomeFirstResponder。 所以我写了一个keyboardDidShow方法,并通过NSNotification调用它。在这种方法中,我将TextField设置为第一响应者。