Si no puede hacerlo funcionar de la manera oficial, como lo proporciona @vikingosegundo, puede hacerlo con algo de ingeniería creativa (Creative como en, oh dios mío que es peligroso). Descubrí este método cuando accidentalmente eliminé [NSBundle localizedStringForKey:value:tableName:]
.
1) Añadir una categoría para NSBundle con los siguientes métodos:
#import <objc/runtime.h>
+ (void) load {
Method original, swizzled;
original = class_getInstanceMethod(self, @selector(localizedStringForKey:value:table:));
swizzled = class_getInstanceMethod(self, @selector(swizzled_localizedStringForKey:value:table:));
method_exchangeImplementations(original, swizzled);
}
- (NSString*) swizzled_localizedStringForKey:(NSString *)key value:(NSString *)value table:(NSString *)tableName {
NSLog(@"Key: %@. Value: %@", key, value);
return [self swizzled_localizedStringForKey: key value:value table:tableName];
}
2) Donde basta con acceder la clave/valor, que desea poner un if ([clave isEqualToString: xxx] bloque). Allí, desea capturar (al menos algunos de) los siguientes valores clave: Cortar, Copiar [Menú], Seleccionar, Seleccionar todo, Pegar, Eliminar [Menú], Reemplazar ..., Definir, Hablar, Pausa. Estos son los valores predeterminados que pueden aparecer allí.
3) Cuando haya capturado el valor, puede buscar en una tabla personalizada o utilizar valores codificados. Si busca en una tabla personalizada, asegúrese de tener un truco en su método swizzled para evitar el bucle infinito en su tabla personalizada.
NB: ¿Por qué necesitas swizzle? Porque esto anula todo el texto de Apple para su aplicación. Seguirá deseando los valores predeterminados para todas las demás cadenas, por lo que debe cambiar para obtener los valores predeterminados para las cadenas que no le interesan.
Buena suerte. Paul
debe cambiar cuando cambie el teléfono, este es un caso curioso –
Realmente. Ha reiniciado el dispositivo varias veces, y como puede ver desde el teclado, el idioma del iPhone es danés ... Curioso ... –
¡Hehe! ¡Esto es divertido! ¿Tal vez deberías presentar un informe de incidente a Apple sobre esto? – Neeku