iPhone和ipad鍵盤高度及鍵盤響應事件 摘

2022-03-19 10:28:53 字數 1549 閱讀 5680

ipad鍵盤高度:

portrait  264

landscape  352.

iphone鍵盤高度:

portrait  216

landscape  140

背景:ios5之前,iphone上的鍵盤的高度是固定為216.0px高的,中文漢字的選擇框是懸浮的,所以不少應用都將此高度來標註鍵盤的高度。

可是在ios5中,鍵盤布局變了,尤其是中文輸入時,中文漢字選擇框就固定在鍵盤上方,這樣就使得原本與鍵盤緊密貼合的介面檢視被中文漢字選擇框給覆蓋住了。一方面影響了介面的美觀,另一方面,如果被覆蓋的部分就是文字輸入框的話,使用者就無法看到輸入的內容了。因此這個問題就必須得解決了。

解決方法:

其實在一開始使用216.0px這個固定值來標註鍵盤的高度就是錯誤的。因為在ios3.2以後的系統中,蘋果就提供了鍵盤使用的api以及demo程式——「keyboardaccessory

」。處理鍵盤事件的正確方法是這樣的:(包括獲取鍵盤的高度以及鍵盤彈出和消失動畫的時間)

1)在要使用鍵盤的檢視控制器中,接收鍵盤事件的通知:

[[nsnotificationcenter defaultcenter] addobserver:self selector:@selector(keyboardwillshow:) name:uikeyboardwillshownotification object:nil];

[[nsnotificationcenter defaultcenter] addobserver:self selector:@selector(keyboardwillhide:) name:uikeyboardwillhidenotification object:nil];

//鍵盤高度變化通知,ios5.0新增的

#ifdef __iphone_5_0

float version = [[[uidevice currentdevice] systemversion] floatvalue];

if (version >= 5.0)

#endif

2)然後新增鍵盤事件的處理**:

獲取到當前keyboard的高度以及動畫時間,然後對檢視進行對應的操作即可。

#pragma mark -

#pragma mark responding to keyboard events

- (void)keyboardwillshow:(nsnotification *)notification

- (void)keyboardwillhide:(nsnotification *)notification

3)在檢視控制器消除時,移除鍵盤事件的通知:

[[nsnotificationcenter defaultcenter] removeobserver:self];
ps:ios5隱藏功能分享——「字典」功能(英英字典):

在任何輸入框中選中乙個英文單詞,此時會有選擇項「複製」,「刪除」...等,還有乙個向右的箭頭,點選這個向右的箭頭後,就會出現「定義」選項,點選這個「定義」按鈕即會彈出這個英語單詞的英文解釋。

iPhone和ipad鍵盤高度及鍵盤響應事件

在ios3.2以後的系統中,蘋果就提供了鍵盤使用的api以及demo程式 keyboardaccessory 處理鍵盤事件的正確方法是這樣的 包括獲取鍵盤的高度以及鍵盤彈出和消失動畫的時間 1 在要使用鍵盤的檢視控制器中,接收鍵盤事件的通知 nsnotificationcenter defaultc...

Apple在用Ipad和Iphone玩兒左右互搏

大家一直都在詬病ipad沒有攝像頭,ipad沒有gps,ipad沒有打 的功能 這個功能是我詬病的嘿嘿 沒有方便的外接鍵盤。大家一直還在期盼或者嫉妒或者嚮往或者葡萄酸ipad的功能和外觀和使用者和銷售。ipad的價位足夠承擔ipad的攝像頭 gps 打 外接鍵盤等等成本而盈利,那為什麼ipad不加上...

用CSS簡單區分iPad和iPhone

ipad終於發布了,那麼如果用樣式區分ipad和iphone中的safari瀏覽器,jason grigsby做了乙個有用的實驗。就絕大部分而言,ipad上的移動版safari和iphone上的事一樣的。我發現的乙個不同是,ipad上的webkit支援基於方向 orientation 的css 查詢...