0

私のiPadアプリでは、キーボードなしでUIModalPresentationFormSheetモーダルモードでいくつかのView Controllerを表示したいと考えています。

例としてヘルプを表示するために使用します。

現時点では、stackoverflowの回答の1つにあるコードを使用して、それを却下します。

// 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);
        }

    }

しかし、Apple はプライベート API を使用しているため、承認プロセス中に拒否される可能性があるのではないかと心配しています。

Apple の開発者が GarageBand のヘルプ画面でそれを達成したのを見ることができるので、これが「適切な」方法であるに違いありません。

そのようなわずかな制限のために、クライアントはデザインコンセプトを変更したくないので、助けていただければ幸いです.

更新: ちょうど今日私は AppStore から拒否されました:

お客様のアプリは、App Store レビュー ガイドラインに準拠していない 1 つ以上の非公開 API を使用していることが判明しました。非公開 API の使用は許可されていません。これらの API が変更された場合、ユーザー エクスペリエンスが低下する可能性があるためです。

アプリで次の非公開 API が見つかりました:

activeInstance を閉じるキーボード

したがって、次のアドバイスに従わないでください: モーダル ビュー コントローラーから iPad キーボードを非表示にする方法は?

4

1 に答える 1

0

前述の質問のコメントで述べたように、NSSelectorFromString()を使用してセレクターを動的に構築できます。これはAppStoreで受け入れられ、バグが修正され、コードがクラッシュしなくなります。

于 2011-05-20T19:25:40.373 に答える