Después de cargar la pluma con NSViewController ... ¿cómo accedo al botón NSB en la punta?

StackOverflow https://stackoverflow.com/questions/1809656

Pregunta

He subclasificado NSViewController con IBOutlets enganchados en un NSButton en una plumilla secundaria.

Puedo crear una instancia del NSViewController y aplicar la vista en un NSMenu; funciona bien, pero ¿cómo accedo al botón para cambiar su título?

Dado que NSViewController tiene IBOutlets, asumí que lo haría a través del controlador.

//this part works great
NSViewController *viewController = [[toDoViewController alloc] initWithNibName:@"toDoView" bundle:nil];
NSView *newView = [viewController view];
newMenuItem.view = newView;

//this part not so much
[viewController [toDoButton setTitle:someStringHere]];

¿Algún indicador sobre dónde ir desde aquí?

Editar para agregar: la clase toDoViewController -

@interface toDoViewController : NSViewController {
    IBOutlet NSButton *checkBoxButton;
    IBOutlet NSButton *toDoButton;
}

@end
¿Fue útil?

Solución

[viewController [toDoButton setTitle:someStringHere]];

Como dirían los intérpretes de ficción interactiva, "Parece que falta un verbo".

Tienes un receptor ( viewController ) y una completa expresión-mensaje ( [toDoButton setTitle:…] ), y corchetes, pero te falta un selector. Como tal, esto no es una expresión-mensaje válida.

Hay dos posibilidades:

  1. Quiere enviar un mensaje al controlador de vista, pasando el resultado de setTitle: como su argumento, y olvidó el selector. Lo encuentro poco probable, porque el setTitle: de NSButton no devuelve nada.
  2. Quiere obtener el botón del controlador de vista y luego enviar un mensaje setTitle: al botón. Suponiendo que este controlador de vista es una instancia de una subclase de NSViewController en la que ha agregado una propiedad toDoButton , use [[viewController toDoButton] setTitle: someStringHere] o < código> [viewController.toDoButton setTitle: someStringHere] .
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top