在ios開發中,經常有需要根據彈出來的鍵盤不同高度,改變我們檢視顯示的需求,而鍵盤的高度並不是一定的(比如中文輸了字和英文鍵盤)。
那麼我們可以通過註冊鍵盤通知,監聽鍵盤的高度改變事件來完成。
這裡我只給出最核心的部分**。
首先是註冊通知:
//鍵盤高度改變的通知
[[nsnotificationcenter defaultcenter]addobserver:selfselector:@selector(keyboardwillshow:) name:uikeyboardwillshownotification object:nil];
[[nsnotificationcenter defaultcenter]addobserver:selfselector:@selector(keyboardwillhide:) name:uikeyboardwillhidenotification object:nil];
// 鍵盤高度變化通知,ios5.0新增的
#ifdef __iphone_5_0
float version = [[[uidevicecurrentdevice]systemversion]floatvalue];
if (version >=5.0)
#endif
然後是實現相應的方法:
#pragma mark keyboardnotification
-(void)keyboardwillshow:(nsnotification*)notification
-(void)keyboardwillhide:(nsnotification*)notification
最後提醒一下,不要忘記在相應的地方(離開介面或者銷毀此類時),取消註冊的通知
[[nsnotificationcenter defaultcenter]removeobserver:self name:uikeyboardwillshownotification object:nil];
[[nsnotificationcenter defaultcenter]removeobserver:self name:uikeyboardwillhidenotification object:nil];
#ifdef __iphone_5_0
float version = [[[uidevice currentdevice] systemversion] floatvalue];
if (version >= 5.0)
#endif
iOS鍵盤高度的獲取
如下 void viewdidload 當鍵盤出現或改變時呼叫 void keyboardwillshow nsnotification anotification 當鍵退出時呼叫 void keyboardwillhide nsnotification anotification 高度值其實就只有...
ios計算鍵盤高度的處理
ios5之前鍵盤的高度是無法改變的,在更新ios5之後中文輸入法的高度可以變化 uikeyboarddidshownotification uikeyboardwillhidenotification uikeyboardwillchangeframenotification 這幾個notifica...
iOS開發 鍵盤通知
uikeyboardwillshownotification uikeyboarddidshownotification uikeyboarddidhidenotification uikeyboarddidhidenotification addobserver與removeobserver需要在...