当项目需求是在导航栏上面输入搜索功能的时候,一般都会有进来界面会做个第一响应的操作,之前我们一般都是在viewWillAppear方法里面去做这个第一响应的操作的,但是会有小小的问题,
- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
[self.textField becomeFirstResponder];
}
- (void)viewDidLoad {
[super viewDidLoad];
[self.view addSubview:self.textField];
[self.textField becomeFirstResponder];
}
然而在iOS11 就不行了,每次刚Push进来的时候,键盘是弹出来了,但是瞬间就又缩回去了,视图还将要出现,包括在viewDidLoad方法里面去写第一响应都不行,都会出现这个问题。
经过一番测试,最终的解决办法就是让视图已经加载完成并出现的时候去做这个操作:
- (void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];
[self.textField becomeFirstResponder];
}