0

模式視圖控制器在我的iPad應用程序,我要提供一些視圖控制器在UIModalPresentationFormSheet模式模式無鍵盤的iPad - 關閉鍵盤在UIModalPresentationFormSheet模式

我用它來顯示幫助爲例。

在我用計算器答案的一個找到的代碼以關閉的那一刻:

// trick to dismiss keyboard in iPad:  
    if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad){ 
     // iPad specific behaviour: 

     @try 
     { 
      Class UIKeyboardImpl = NSClassFromString(@"UIKeyboardImpl"); 
      id activeInstance = [UIKeyboardImpl performSelector:@selector(activeInstance)]; 
      [activeInstance performSelector:@selector(dismissKeyboard)]; 
     } 
     @catch (NSException *exception) 
     { 
      //NSLog(@"%@", exception); 
     } 

    } 

但恐怕蘋果可以,因爲它使用私有API在審批過程中拒絕它在

我可以看到Apple開發人員在GarageBand幫助屏幕中實現了這一目標,因此它必須是「正確」的方法。

希望能有所幫助,因爲我們的客戶不希望改變設計理念,因爲這種輕微的限制。

UPDATE: 就在今天,我從AppStore的拒絕:

我們發現您的應用使用一個或 多個非公開的API,這是不 符合App Store的審查 指南。使用非公開API 是不允許的,因爲如果這些API改變,它可能導致 糟糕的用戶體驗。

我們發現您應用中的以下非公開的API :

activeInstance dismissKeyboard

所以請不遵循這個建議How to HIDE the iPad keyboard from a MODAL view controller?

回答

0

正如我所說的在提到的問題的評論中:你可以構造選擇器dyn用NSSelectorFromString()。這將被AppStore接受,你的錯誤將被修復,你的代碼不會崩潰。

+0

這會很容易欺騙蘋果。我相信他們能夠掃描從NSString構建的選擇器。他們不會輕易繞過私人限制。 – Lukasz 2011-05-21 06:26:53