关键词:键盘状态 输入法状态 监听
1、新建一SingleView Application,命名为:KeyBoard&InputMethod,工程结果如下:
[img]
[/img]
2、修改ViewController.xib如下:
[img]
[/img]
3、ViewController.h不作修改,ViewController.m修改后如下:
@interface ViewController () @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. //监听键盘状态 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardDidShow:) name:UIKeyboardDidShowNotification object:nil]; //监听输入法状态 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(changeInputMode:) name:UITextInputCurrentInputModeDidChangeNotification object:nil]; } #pragma mark Notification //keyBoard已经展示出来 - (void)keyboardDidShow:(NSNotification *)notification { NSValue* aValue = [[notification userInfo] objectForKey:UIKeyboardFrameEndUserInfoKey]; CGRect keyboardRect = [aValue CGRectValue]; CGRect keyboardFrame = [self.view convertRect:keyboardRect fromView:[[UIApplication sharedApplication] keyWindow]]; CGFloat keyboardHeight = keyboardFrame.size.height; NSLog(@"##keboardHeight=%.2f",keyboardHeight); } //输入法发生切换 -(void)changeInputMode:(NSNotification *)notification{ NSString *inputMethod = [[UITextInputMode currentInputMode] primaryLanguage]; NSLog(@"inputMethod=%@",inputMethod); } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. } @end