蘋果表示:使用UIPresentationFormSheet,爲什麼我的視圖在鍵盤上方移動時不能移動?
UIModalPresentationFormSheet 所呈現視圖的寬度和高度比屏幕的更小,並且視圖居中在屏幕上。 如果設備處於橫向並且鍵盤可見,則視圖的位置會向上調整,以便視圖保持可見。所有未被覆蓋的區域都變暗以防止用戶與其進行交互。
但是,當鍵盤可見時,我的視圖不會向上移動。我基本上想要在鍵盤上方呈現一個文本視圖,這樣用戶可以輸入文本,然後點擊發送(在呈現視圖上的導航欄按鈕中)。
我的呈現視圖是UISplitViewController
(不是它的子項之一)我正在介紹UINavigationController
誰的頂視圖控制器基本上是UITextView
。旋轉工作,但呈現的視圖在兩個方向上都與鍵盤重疊。
我發現somequestionsasking如何調整在這種情況下,這是很好的呈現的觀點,但我不希望有由主持人或所呈現的視圖中手動調整作出假設。它似乎應該只是選擇一個體面的(無證)大小,只是在鍵盤顯示時自動將其移出。
我的呈現代碼如下所示:
MyViewController *vc = [[MyViewController alloc] init];
UINavigationController *nav = [[[UINavigationController alloc] initWithRootViewController:vc] autorelease];
nav.modalPresentationStyle = UIModalPresentationFormSheet;
[self.splitViewController presentModalViewController:nav animated:YES];
我還發現,如果我使用becomeFirstResponder即使在viewDidAppear中,我也會收到不良效果。例如,在橫向模式下,模態視圖將錯誤居中。爲了避免這個問題,請在dispatch_async()中調用becomeFirstResponder。 – Hampden123