iPhone的軟鍵盤為216像素高,程式員不得不在軟鍵盤彈出時想辦法調整視窗視圖,避免輸入控制項被彈出的軟鍵盤所遮擋。
iPhone程式員普遍採用註冊軟鍵盤事件的觀察者對象來對付這個問題。當軟鍵盤彈出時,表單的View被上移,當軟鍵盤隱藏時,表單的View恢複原來位置,這樣就避免了輸入控制項被遮擋。
KeyBoardUtil是我寫的一個類,正是使用了上述原理,但進行了一些封裝,便於程式員使用。
它的使用很簡單。首先在要使用的ViewController中匯入標頭檔:
#import"KeyBoardUtil.h"
並在類中聲明一個KeyBoardUtil成員變數:
KeyBoardUtil* keyboardUtil;
在類的初始化方法中,初始化KeyBoardUtil對象:
keyboardUtil=[[KeyBoardUtil alloc]initWithOwner:self offsetY:100];
ower參數為self,offsetY參數則指定了鍵盤彈出時視窗View將要上移的像素,一般最高為軟鍵盤全高216,但也可以不需要移動那麼多,請根據實際情況決定需要移動多少。
然後在View Controller的顯示和隱藏事件中分別調用KeyBoardUtil的reg和unreg方法:
#pragma mark 註冊/登出鍵盤彈出通知方法 www.2cto.com
-(void)viewWillDisappear:(BOOL)animated
{
[keyboardUtil unreg];
[keyboardUtil release];
}
-(void)viewWillAppear:(BOOL)animated
{
[keyboardUtil reg];
}
全部代碼就這些,是不是方便了許多?如果你喜歡這個小東西,那麼可以去資源裡下載:http://download.csdn.net/detail/kmyhy/3887363
摘自 kmyhy的專欄