teclado tamaño palabras ingles idioma español eliminar diccionario descargar como chino cambiar aumentar iphone iphone-softkeyboard

tamaño - teclado iphone 7



iPhone: Cambia el lenguaje del teclado programáticamente (5)

Declaración:

@IBOutlet var yourTextField:cTextField!;

Utilizar:

yourTextField.languageCode = "ru";

Clase cTextField:

class cTextField: UITextField { // ru, en, .... var languageCode:String?{ didSet{ if self.isFirstResponder{ self.resignFirstResponder(); self.becomeFirstResponder(); } } } override var textInputMode: UITextInputMode?{ if let language_code = self.languageCode{ for keyboard in UITextInputMode.activeInputModes{ if let language = keyboard.primaryLanguage{ let locale = Locale.init(identifier: language); if locale.languageCode == language_code{ return keyboard; } } } } return super.textInputMode; } }

Estoy tratando de proporcionar un soporte de idioma diferente en mi aplicación iOS 5.x cuando se abre el teclado nativo. Proporcionar este lenguaje en el teclado nativo mediante programación. ¿Podría alguien guiarme como puedo apoyarlo? Vi un marco de carbono, pero parece que es para aplicaciones de Mac.

Gracias.


Esto parece funcionar para cambiar, por ejemplo, a un teclado griego:

[[NSUserDefaults standardUserDefaults] setObject:[NSArray arrayWithObjects:@"el", nil] forKey:@"AppleLanguages"]; [[NSUserDefaults standardUserDefaults] synchronize];


No, esto no es posible: el usuario solo puede cambiar su idioma en la configuración.

Sin embargo, puede darle al usuario un teclado "inglés" si lo elige (o le pregunta qué prefiere)

usted hace esto usando: UIKeyboardTypeASCIICapable

Puede cambiar el teclado directamente en el teclado presionando el "ícono del globo" en la fila inferior.

Primero, tienes que habilitar esos idiomas para ingresar en Configuración. Luego, al presionar el botón del globo en el teclado se alternará entre esos idiomas.


Puede hacerlo a partir de iOS 7 por UIResponder base. Hay propiedad textInputMode en la clase UIResponder. Es de solo lectura, pero la documentación dice:

El modo de entrada de texto identifica el idioma y el teclado que se muestran cuando este contestador está activo.

Para quienes responden, el sistema normalmente muestra un teclado que se basa en las preferencias de idioma del usuario. Puede redefinir esta propiedad y usarla para devolver un modo de entrada de texto diferente en los casos en que desee que un respondedor use un teclado específico. El usuario aún puede cambiar el teclado mientras el respondedor está activo, pero cambiar a otro respondedor y luego restaurar el teclado que especificó.

En mi proyecto, creé una subclase de UITextField y UITextField una nueva propiedad llamada userDefinedKeyboardLanguage. También anulé el método textInputMode mencionado anteriormente. Se parece a lo siguiente:

- (UITextInputMode *) textInputMode { for (UITextInputMode *tim in [UITextInputMode activeInputModes]) { if ([[Utilities langFromLocale:userDefinedKeyboardLanguage] isEqualToString:[Utilities langFromLocale:tim.primaryLanguage]]) return tim; } return [super textInputMode]; }

También tengo un método personalizado + (NSString *) langFromLocale: (NSString *) locale en mi clase de Utilidades que se ve así:

+ (NSString *)langFromLocale:(NSString *)locale { NSRange r = [locale rangeOfString:@"_"]; if (r.length == 0) r.location = locale.length; NSRange r2 = [locale rangeOfString:@"-"]; if (r2.length == 0) r2.location = locale.length; return [[locale substringToIndex:MIN(r.location, r2.location)] lowercaseString]; }

Ahora mi clase de campo de texto personalizado puede cambiar el idioma de entrada del teclado simplemente configurando la propiedad userDefinedKeyboardLanguage en el idioma deseado.


Sé que es una pregunta antigua, pero aquí está mi manera de cambiar el idioma del teclado.

Gracias a @ the4kman por la marca: de esta manera puede cambiar el teclado actual solo a los que se agregaron en Configuración.

Swift 3:

class CustomTextField: UITextField { private func getKeyboardLanguage() -> String? { return "en" // here you can choose keyboard any way you need } override var textInputMode: UITextInputMode? { if let language = getKeyboardLanguage() { for tim in UITextInputMode.activeInputModes { if tim.primaryLanguage!.contains(language) { return tim } } } return super.textInputMode } }