1.在工程中使用pod倒入IQKeyboardManager这个库,默认会对工程中的每个页面开启IQKeyboardManager。一般会在AppDelegate 中的
- (BOOL)application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDictionary*)launchOptions
方法中加上:
[[IQKeyboardManager sharedManager] setEnable:NO];
和
[[IQKeyboardManager sharedManager] setEnableAutoToolbar:NO];
关闭IQKeyboardManager。在需要开启的页面中打开IQKeyboardManager
-(void)viewWillAppear:(BOOL)animated
{
[superviewWillAppear:animated];
[[IQKeyboardManager sharedManager] setEnable:YES];
[[IQKeyboardManager sharedManager] setShouldResignOnTouchOutside:YES];
}
-(void)viewWillDisappear:(BOOL)animated
{
[super viewWillDisappear:animated];
[[IQKeyboardManager sharedManager] setEnable:NO];
[[IQKeyboardManager sharedManager] resignFirstResponder];
}
2.在tableview的cell里面有textfield和textview,在开始编辑textfield的时候,同时还会调用textview的开始编辑代理方法,此时需要在viewWillAppear方法里面需要设置
[[IQKeyboardManager sharedManager] setEnableAutoToolbar:NO];
3.在tableview的cell里面有textfield和textview,切textview编辑时改变cell的高度
我使用的是tableview的自动更新高度,在cell里面实现
- (void)textViewDidChange:(UITextView*)textView
的方法,此时在iOS11系统没有问题,在8,9,10的系统无法更新,此时在
- (void)textViewDidChange:(UITextView*)textView
中添加
[self layoutIfNeeded];
可以更新cell高度,切键盘的光标始终在键盘上面。
4.在tableview的cell里面有textfield和textview,切textview编辑时改变cell的高度,当textview粘贴时,无法使光标始终在键盘上面???