2012-09-20 55 views
1

我在模態表單中呈現視圖。它可以工作,但鍵盤會阻擋橫向屏幕的下半部分(以及縱向屏幕的一小部分)。我如何補償iPad上的鍵盤?如何調整我的視圖來調整iPad的鍵盤?

用戶界面基本上是屏幕左側3/4處的一個大型文本框,在桌面視圖中沿着右側邊緣有一段照片。我需要tableview來調整大小,以便用戶可以滾動查看最後一個。

(我讀過如何做到這一點的iPhone,但相同的代碼不會在iPad上運行。)

Note UI

(有3.5照片下方的鍵盤下方,但如果您嘗試將其向下滾動,表格視圖將反彈回此位置。)

回答

0

我的問題是由於指派第一響應者viewWillAppear而引起的。此時,鍵盤通知會觸發,但其轉換爲新視圖的座標無效,因爲該視圖實際上並未出現。

所以不是這樣:

- (void)viewWillAppear: (BOOL)animated { 
    [super viewWillAppear: animated]; 

    // register for keyboard events here 

    [_field becomeFirstResponder]; 
} 

我現在這樣做:

- (void)viewWillAppear: (BOOL)animated { 
    [super viewWillAppear: animated]; 

    // register for keyboard events here 

    dispatch_async(dispatch_get_main_queue(), ^{ 
     [_field becomeFirstResponder]; 
    }); 
} 

否則,這個問題很簡單:找到鍵盤邊框,將其轉換爲本地座標調整意見,以鴨子。

我發佈了一個測試項目到github: Keyboard Ducker

相關問題