Probablemente una pregunta fácil, pero no puedo conseguir mi cabeza alrededor de ella.

Me gustaría crear algún tipo de mago: Un NSWindow aparece como una hoja de otro NSWindow y debe mostrar tres diferentes NSViews, uno tras otro.

Creo que debo crear una personalizada NSWindowController y tres NSViewControllers, pero no sé cómo configurar los controladores y cómo intercambiar los puntos de vista.

OriginalEl autor fabian789 | 2011-02-20

2 Comentarios

  1. 12

    En pocas palabras, la ventana controlador sería crear instancias de los tres controladores, tienen una vista de anfitrión, y agregar -[NSView addSubview:] o quitar -[NSView removeFromSuperView] el punto de vista de los controladores de vistas como subvistas de la vista de anfitrión. Dependiendo de cómo se estructura el código, también se puede utilizar -[NSView replaceSubview:with:] para reemplazar una subvista con otro.

    De Apple Controlador de vista de código de ejemplo características de cambio de vista el uso de la vista de los controladores.

    Acabo de darme cuenta de la contentView de un NSWindow. Hay razones para no usarlo?
    Usted podría utilizar contentView como la vista de anfitrión. Sin embargo, si usted decide colocar otros controles en la ventana además de las subvistas, teniendo a la vista de anfitrión ser una subvista de contentView hace las cosas más fáciles, ya que no habría que cambiar el código que cambia las subvistas.

    OriginalEl autor

  2. 1

    @Bavarious respuesta es buena, gente como yo, siempre se necesita un buen fragmento de código:

    appDelegate = (AppDelegate*)[[NSApplication sharedApplication] delegate];
    self.masterViewController = [[MasterViewController alloc] initWithNibName:@"MasterViewController" bundle:nil];
    [appDelegate.window.contentView replaceSubview:self.view with:self.masterViewController.view];

    Puedo crear la appDelegate objeto porque no se llama desde un NSViewController de lo contrario, usted puede disfrutar de la vista de uno mismo.

    lo que no funciona
    eso es lo que yo hago En mi mac apps, funciona muy bien para mí
    he intentado esto pero no funciona
    no trabajar, pero lo que sucede, cualquier error, cualquier accidente. Usted está haciendo algo mal, porque este código ha sido probado
    appDelegate no tenía ninguna propiedad de la ventana!

    OriginalEl autor meda

Dejar respuesta

Please enter your comment!
Please enter your name here