0

所有,句柄ModalPresentationFormSheet鍵盤解僱

我有了同級別設置爲UIControl並有一個「backgroundTouched」完美地處理這些背景觸摸事件IBAction爲方法的DetailViewController。當我更改DetailViewController以模態形式呈現時,在FormSheet中,我失去了檢測背景觸摸的能力,因此鍵盤不會在背景觸摸上消失。我認爲原因在於之前的DetailView佔用了整個屏幕,因此所有的委託方法都被解僱了,但現在它已經以模態方式呈現,這些委託和IBAction方法不再能夠進行通信。

我對問題的分析正確嗎?如何獲取報告事件的模態演示文稿?

感謝

//Give it a nav controller 
UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:detailViewController]; 



/**************************************************** 
* 
* Use a modal form presentation for form 
* 
* 
****************************************************/ 

    //Use a form sheet style for DetailView 
    [navController setModalPresentationStyle:UIModalPresentationFormSheet]; 

    //flip-horizontal transition 
    [navController setModalTransitionStyle:UIModalTransitionStyleFlipHorizontal]; 



[self presentViewController:navController animated:YES completion:nil]; 


} 

回答

1

這可能與蘋果公司如何選擇一個模式演示過程中處理鍵盤解聘(即基本不隱瞞它時,它通常會躲起來。理由是,在模式方面它可能會經常上下)。 請參閱Modal Dialog Does Not Dismiss Keyboard對這個問題的接受答案有一個很好的解釋,我的答案在使用導航控制器時提供了一個很好的通用解決方案。

+0

這很有幫助。謝謝! – Slinky