最近做了一個自定義鍵盤,首先是要知道iOS設備各種鍵盤的高度,下面就來說一下怎麼獲取鍵盤的高度。
主要是利用鍵盤彈出時的通知。
1、首先先隨便建一個工程。
2、在工程的 -(void)viewDidload;函數中添加鍵盤彈出和隱藏的通知,具體代碼如下:
//增加監聽,當鍵盤出現或改變時收出消息
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(keyboardWillShow:)
name:UIKeyboardWillShowNotification
object:nil];
//增加監聽,當鍵退出時收出消息
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(keyboardWillHide:)
name:UIKeyboardWillHideNotification
object:nil];
3、當得到通知時寫2個函數,來響應通知 -(void)keyboardWillShow; -(void)keyboardWillHide;
在這2個函數中可以得到鍵盤的一些屬性,具體代碼如下:
- (void)keyboardWillShow:(NSNotification *)aNotification
{
//獲取鍵盤的高度
/*
iphone 6:
中文
2014-12-31 11:16:23.643 Demo[686:41289] 鍵盤高度是 258
2014-12-31 11:16:23.644 Demo[686:41289] 鍵盤寬度是 375
英文
2014-12-31 11:55:21.417 Demo[1102:58972] 鍵盤高度是 216
2014-12-31 11:55:21.417 Demo[1102:58972] 鍵盤寬度是 375
iphone 6 plus:
英文:
2014-12-31 11:31:14.669 Demo[928:50593] 鍵盤高度是 226
2014-12-31 11:31:14.669 Demo[928:50593] 鍵盤寬度是 414
中文:
2015-01-07 09:22:49.438 Demo[622:14908] 鍵盤高度是 271
2015-01-07 09:22:49.439 Demo[622:14908] 鍵盤寬度是 414
iphone 5 :
2014-12-31 11:19:36.452 Demo[755:43233] 鍵盤高度是 216
2014-12-31 11:19:36.452 Demo[755:43233] 鍵盤寬度是 320
ipad Air:
2014-12-31 11:28:32.178 Demo[851:48085] 鍵盤高度是 264
2014-12-31 11:28:32.178 Demo[851:48085] 鍵盤寬度是 768
ipad2 :
2014-12-31 11:33:57.258 Demo[1014:53043] 鍵盤高度是 264
2014-12-31 11:33:57.258 Demo[1014:53043] 鍵盤寬度是 768
*/
NSDictionary *userInfo = [aNotification userInfo];
NSValue *aValue = [userInfo objectForKey:UIKeyboardFrameEndUserInfoKey];
CGRect keyboardRect = [aValue CGRectValue];
int height = keyboardRect.size.height;
int width = keyboardRect.size.width;
NSLog(@"鍵盤高度是 %d",height);
NSLog(@"鍵盤寬度是 %d",width);
}
//當鍵退出時調用
- (void)keyboardWillHide:(NSNotification *)aNotification
{
}