tamaño - ¿Puedo deshabilitar los teclados personalizados(iOS8) para mi aplicación?
teclado iphone 7 (3)
Parece que obtuviste lo que querías en la semilla beta 3. Línea 440 de UIApplication.h:
// Applications may reject specific types of extensions based on the extension point identifier.
// Constants representing common extension point identifiers are provided further down.
// If unimplemented, the default behavior is to allow the extension point identifier.
- (BOOL)application:(UIApplication *)application shouldAllowExtensionPointIdentifier:(NSString *)extensionPointIdentifier NS_AVAILABLE_IOS(8_0);
Actualmente no está incluido en los documentos, pero parece que hará exactamente lo que pediste aquí.
Supongo que estos "identificadores de punto de extensión" no son identificadores únicos de extensiones, sino de sus tipos, ya que también hay esto en la línea 545:
// Extension point identifier constants
UIKIT_EXTERN NSString *const UIApplicationKeyboardExtensionPointIdentifier NS_AVAILABLE_IOS(8_0);
TLDR: para deshabilitar los teclados personalizados, incluiría algo como esto en su delegado de aplicación:
- (BOOL)application:(UIApplication *)application shouldAllowExtensionPointIdentifier:(NSString *)extensionPointIdentifier {
if ([extensionPointIdentifier isEqualToString: UIApplicationKeyboardExtensionPointIdentifier]) {
return NO;
}
return YES;
}
EDIT: tl; dr - es posible, vea la respuesta aceptada a continuación.
¿Existe alguna forma (no solo programática) de evitar que se usen teclados personalizados (iOS8) para mi aplicación? Estoy interesado principalmente en la configuración "por aplicación", por lo que solo mi aplicación no puede usar teclados personalizados, pero deshabilitar los teclados personalizados en todo el sistema es el último recurso.
Hasta ahora sé que los teclados personalizados abarcan todo el sistema y pueden ser utilizados por cualquier aplicación. El sistema operativo utilizará el teclado de reserva solo para la entrada de texto segura (los campos de texto con secureTextEntry
establecidos en YES
). No hay mucha esperanza aquí.
App Extension Programming Guide
me dio la impresión de que MDM (Mobile Device Management) puede restringir el uso de teclados personalizados en el dispositivo, pero no encontré esa opción en la nueva versión beta de Apple Configurator.app
para OS X Yosemite. ¿Es ''Configurator'' solo falta esa opción?
¿Alguna idea aquí? ¿Debo archivar un radar para sugerir que Apple debería introducir dicha funcionalidad?
Solo quiero agregar esto para aquellos desarrolladores que quieran implementar este método en Xamarin iOS. La idea es anular el método ShouldAllowExtensionPointIdentifier
en su AppDelegate
:
public override bool ShouldAllowExtensionPointIdentifier(UIApplication application, NSString extensionPointIdentifier)
{
if (extensionPointIdentifier == UIExtensionPointIdentifier.Keyboard)
{
return false;
}
return true;
}
Swift 3:
func application(_ application: UIApplication, shouldAllowExtensionPointIdentifier extensionPointIdentifier: UIApplicationExtensionPointIdentifier) -> Bool {
if extensionPointIdentifier == UIApplicationExtensionPointIdentifier.keyboard {
return false
}
return true
}