#import "AppDelegate.h"
AppDelegate 中添加这段代码,就可以全局不用管键盘的弹起收回了!
#pragma mark - 键盘处理
- (void)completionHandleIQKeyboard
{
IQKeyboardManager *manager = [IQKeyboardManager sharedManager];
manager.enable = YES;
manager.shouldResignOnTouchOutside = YES;
manager.shouldToolbarUsesTextFieldTintColor = YES;
manager.enableAutoToolbar = YES;
}
- 1、首先注册通知:
- (void)registNotification
{
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWasShown:) name:UIKeyboardWillShowNotification object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWasHidden:) name:UIKeyboardWillHideNotification object:nil];
}
- 2、再把后路想好:移除通知
- (void)removeNotification
{
[[NSNotificationCenter defaultCenter] removeObserver:self];
}
- 3、通知事件处理:
/*! 键盘显示要做什么 */
- (void)keyboardWasShown:(NSNotification *)notification
{
NSDictionary *info = [notification userInfo];
double duration = [info[UIKeyboardAnimationDurationUserInfoKey] doubleValue];
CGFloat curkeyBoardHeight = [[info objectForKey:@"UIKeyboardBoundsUserInfoKey"] CGRectValue].size.height;
CGRect begin = [[info objectForKey:@"UIKeyboardFrameBeginUserInfoKey"] CGRectValue];
CGRect end = [[info objectForKey:@"UIKeyboardFrameEndUserInfoKey"] CGRectValue];
CGFloat keyBoardHeight;
/*! 第三方键盘回调三次问题,监听仅执行最后一次 */
if(begin.size.height > 0 && (begin.origin.y - end.origin.y > 0))
{
keyBoardHeight = curkeyBoardHeight;
[UIView animateWithDuration:duration animations:^{
CGRect viewFrame = [self getCurrentViewController].view.frame;
viewFrame.origin.y -= keyBoardHeight;
[self getCurrentViewController].view.frame = viewFrame;
}];
}
}
- (void)keyboardWasHidden:(NSNotification *)notification
{
NSDictionary *info = [notification userInfo];
double duration = [info[UIKeyboardAnimationDurationUserInfoKey] doubleValue];
[UIView animateWithDuration:duration animations:^{
CGRect viewFrame = [self getCurrentViewController].view.frame;
viewFrame.origin.y = 0;
[self getCurrentViewController].view.frame = viewFrame;
}];
}
/*!
* 获取当前View的VC
*
* @return 获取当前View的VC
*/
- (UIViewController *)getCurrentViewController
{
for (UIView *view = self; view; view = view.superview)
{
UIResponder *nextResponder = [view nextResponder];
if ([nextResponder isKindOfClass:[UIViewController class]])
{
return (UIViewController *)nextResponder;
}
}
return nil;
}
/*! 第三方键盘回调三次问题,监听仅执行最后一次 */
if(begin.size.height > 0 && (begin.origin.y - end.origin.y > 0))
{
keyBoardHeight = curkeyBoardHeight;
[UIView animateWithDuration:duration animations:^{
CGRect viewFrame = [self getCurrentViewController].view.frame;
viewFrame.origin.y -= keyBoardHeight;
[self getCurrentViewController].view.frame = viewFrame;
}];
}
self.replyTextField.inputAccessoryView = self.replyTextField2;
- (void)replyTextFieldChanged:(UITextField *)textField
{
NSLog(@"textFieldShouldBeginEditing输入内容****:%@", textField.text);
if (textField != self.replyTextField2)
{
self.replyTextField2.text = textField.text;
}
NSLog(@"textFieldShouldBeginEditing输入内容1:%@", self.replyTextField.text);
NSLog(@"textFieldShouldBeginEditing输入内容2:%@", self.replyTextField2.text);
}
- (BOOL)textFieldShouldReturn:(UITextField *)textField
{
[self.replyTextField resignFirstResponder];
[self.replyTextField2 resignFirstResponder];
[[self getCurrentViewController].view endEditing:YES];
if (self.clickIndexBlock)
{
self.clickIndexBlock(self.replyTextField2.text);
self.replyTextField.text = @"";
self.replyTextField2.text = @"";
}
return YES;
}
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有