2016-08-03 3 views
2

По соображениям безопасности мы хотим показать предупреждение, если пользовательская клавиатура включена для полей Login. Если я использую следующий кодПоказывает предупреждение, когда пользовательская клавиатура включена?

-(BOOL)application:(UIApplication *)application shouldAllowExtensionPointIdentifier:(NSString *)extensionPointIdentifier 
{ 
    if ([extensionPointIdentifier isEqualToString: UIApplicationKeyboardExtensionPointIdentifier]) 
    { 
     return NO; 
    } 
    return YES; 
} 

Если я использую следующий код, он отключает клавиатуру во всех fields.But я хочу, чтобы отключить только несколько полей. Пробовал держать предупреждение внутри цикла if, но он отображает предупреждение для каждой клавиатуры. Как я могу это достичь?

ответ

4

Apple не позволяет использовать пользовательскую клавиатуру для защищенных полей, таких как Login. Чтобы сделать это, просто отметьте флажок «безопасный ввод текста» вашего текстового поля

secure text field

Посмотрите здесь: https://developer.apple.com/library/ios/documentation/General/Conceptual/ExtensibilityPG/CustomKeyboard.html

+0

Этот метод также можно использовать, чтобы убедиться, что UITextInput использует только системную клавиатуру. Это может быть удобно в приложении VNC со скрытым текстовым полем или что-то в этом роде. – the4kman

1

application:shouldAllowExtensionPointIdentifier: метод срабатывает для каждого текстового поля в приложении. В вашем коде нет условия для проверки того, чтобы определенное текстовое поле было включено или отключено.

Чтобы реализовать эту функциональность, вы должны получить ссылку на текстовое поле с текстом от textFieldShouldBeginEditing:, после чего используйте ссылку внутри application:shouldAllowExtensionPointIdentifier:, чтобы включить или отключить пользовательскую клавиатуру.