Tengo un NSTextField que me gustaría habilitar el corrector ortográfico "as-you-type". Cuando cargo mi aplicación, puedo hacerlo desde la barra de menú> Editar> Ortografía y gramática> Verificar ortografía mientras escribo.¿Cómo habilito la revisión ortográfica dentro de un NSTextField en Mac OS X?
Me gustaría que esta opción esté habilitada de forma predeterminada. Dentro de IB puedo habilitar esto para un NSTextView, pero me gustaría usar NSTextField para esta parte de la UI.
Gracias.
Actualización: ¿Alguien sabe si es posible ejecutar mediante programación la barra de Menú> Editar> Ortografía y gramática> Comprobar ortografía al escribir en la opción NSTextField a partir del código de Objective-C? Parece que NSTextField admite la opción "Comprobar ortografía al escribir", simplemente no hay forma de habilitar la opción desde Obj-C.
Edición # 1
He intentado lo siguiente para activar manualmente el menú y no funcionó:
// Focus TextField
[textField becomeFirstResponder];
// Enable Spell Checking
NSMenu *mainMenu = [[NSApplication sharedApplication] mainMenu];
NSMenu *editMenu = [[mainMenu itemWithTitle:@"Edit"] submenu];
NSMenu *spellingMenu = [[editMenu itemWithTitle:@"Spelling and Grammar"] submenu];
NSMenuItem *autoSpellingMenuItem = [spellingMenu itemWithTitle:@"Check Spelling While Typing"];
[autoSpellingMenuItem setEnabled:YES];
NSLog(@"Menu: %@", [autoSpellingMenuItem description]);
NSLog(@"Target: %@", [[autoSpellingMenuItem target] description]);
// Actually perform menu action
[[autoSpellingMenuItem target] performSelector:[autoSpellingMenuItem action]];
No es posible llamar directamente a la acción elemento de menú en lugar de utilizar el setEnabled: SÍ?
Las salidas superiores a la siguiente, sin saber por qué la meta es nulo
App[3895:a0f] Menu: <NSMenuItem: 0x100135180 Check Spelling While Typing>
Current language: auto; currently objective-c
App[3895:a0f] Target: (null)
SOLUCIÓN
A continuación se muestra la solución para este problema si alguien más necesita saber. Algunos NSLogging me mostraron que después de configurar el NSTextField en firstResponder, el firstResponder en realidad contiene un NSTextView, luego puedes habilitar la ortografía. Supongo que el NSTextField contiene un NSTextView en las subvistas que toma el respondedor, realmente esto debería estar expuesto en la clase NSTextField.
// Focus TextField
[textField becomeFirstResponder];
// Enable Continous Spelling
NSTextView *textView = (NSTextView *)[self.window firstResponder];
[textView setContinuousSpellCheckingEnabled:YES];
El 'NSTextView' que aparece se llama el editor de campo. Si esta conversión 'firstResponder' es demasiado frágil, puede anular' -windowWillReturnFieldEditor: forObject: 'en' NSWindowController' y cambiar la configuración allí. – ctietze