2011-08-04 22 views
13

Para iOS (Cocoa Touch), es posible ir a su main.m y reemplazar el cuarto argumento en UIApplicationMain(int argc, char *argv[], nil, nil) con el nombre de clase del delegado de su aplicación, que luego construiría las vistas según sea necesario . Sin embargo, los proyectos de cacao (Mac) tienen el siguiente en main.m:Aplicación Cocoa sin MainMenu.xib

return NSApplicationMain(argc, (const char **)argv); 

Así que la pregunta es básicamente: ¿cómo entregar el delegado de una aplicación para aplicaciones de cacao sin MainMenu.xib?

+2

Esto no es realmente una buena idea, ya que MainMenu.xib contiene la barra de menú. Por lo tanto, cualquiera que busque una solución, no la busque a menos que desee tomarse el trabajo de recrearse y llenar el contenido de la barra de menús usted mismo. ¿Por qué MainMenu.xib se llama MainMenu.xib :) – tux91

Respuesta

15

Puede usar el método setDelegate de NSApplication instancia. Este es un ejemplo:

AppDelegate * delegate = [[AppDelegate alloc] init]; 
[[NSApplication sharedApplication] setDelegate:delegate]; 
[NSApp run]; 

cuanto a valor de retorno puede utilizar EXIT_SUCCESS

+0

¿Dónde lo pongo? main.m? – tux91

+0

sí en main.m, en lugar de 'NSApplicationMain()'. – VenoMKO

+0

Eso funciona, gracias. Sabes qué, me acabo de dar cuenta de que MainMenu.xib tiene la barra de menú, y volver a crearlo será tan doloroso que me quedaré con el xib principal. – tux91

0

Subclase NSApplication, declare el nombre de su subclase como la propiedad Application Class (o similar) en Xcode. En su subclase, puede anular alguna función a la que se llama cuando se inicializa la aplicación, ¿puede ser -finishLaunching?

+0

Pude correctamente subclase NSApplication y anular su init para apuntar al delegado (el delegado luego respondió con mi NSLog en applicationDidFinishLaunching). Sin embargo, la aplicación aún recoge MainMenu.xib incluso si la entrada del archivo de punta principal se elimina de la lista de propiedades. Y si elimina el MainMenu.xib en sí, la aplicación se bloquea al iniciarse sin nada significativo en el depurador – tux91

Cuestiones relacionadas