iPad - Отключить клавиатуру для контроллера модального вида в режиме UIModalPresentationFormSheet - PullRequest
0 голосов
/ 17 марта 2011

В моем приложении для iPad я хочу представить некоторые контроллеры представления в UIModalPresentationFormSheet модальный режим без клавиатуры .

Я использую его для отображения справки в качестве примера.

В данный момент я использую код, найденный на одном из ответов stackoverflow, чтобы отклонить его:

// 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 , поэтому это должен быть "правильный" способ сделать это.

Буду признателен за помощь, поскольку наш клиент не хочет менять концепцию дизайна из-за такого небольшого ограничения.

UPDATE: Только сегодня я был отклонен из AppStore:

Мы обнаружили, что ваше приложение использует один или больше непубличных API, которых нет в соответствие обзору App Store Методические рекомендации. Использование закрытых API не допустимо, потому что это может привести для плохого пользовательского опыта, если они API меняются.

Мы нашли следующие непубличные API в вашем приложении:

activeInstance dismissKeyboard

Поэтому, пожалуйста НЕ следуйте этому совету : Как скрыть клавиатуру iPad от контроллера MODAL View?

1 Ответ

0 голосов
/ 20 мая 2011

Как я уже сказал в комментарии к упомянутому вопросу: , вы можете динамически создать селектор с помощью NSSelectorFromString () .Это будет принято для AppStore, ваша ошибка будет исправлена, и ваш код не потерпит крах.

...