Após o carregamento nib com NSViewController ... como faço para acessar o NSButton na ponta?

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

Pergunta

Eu tenho uma subclasse NSViewController com IBOutlets enganchados em um NSButton em um nib secundário.

Eu posso instanciar o NSViewController e aplicar a vista em uma NSMenu - ele funciona muito bem - mas como faço para acessar o botão para alterar o seu título

Uma vez que o NSViewController tem IBOutlets, eu achava que eu ia fazer isso através do 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]];

Os ponteiros sobre onde ir a partir daqui?

Editar para adicionar: a classe toDoViewController -

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

@end
Foi útil?

Solução

[viewController [toDoButton setTitle:someStringHere]];

Como os intérpretes ficção interativa diria: “Isso parece estar faltando um verbo.”

Você tem um receptor (viewController), e uma mensagem-expressão completa ([toDoButton setTitle:…]), e os suportes, mas que está faltando um seletor. Como tal, esta não é uma mensagem-expressão válida.

Existem duas possibilidades:

  1. Você quer dizer para enviar uma mensagem para o controlador de vista, passando o resultado de setTitle: como seu argumento, e você esqueceu o seletor. Acho isso improvável, porque setTitle: de NSButton não retorna nada.
  2. Você quer dizer que para obter o botão do controlador de vista, em seguida, enviar o botão uma mensagem setTitle:. Assumindo que este controlador de vista é uma instância de uma subclasse de NSViewController em que você adicionou uma propriedade toDoButton, use um [[viewController toDoButton] setTitle:someStringHere] ou [viewController.toDoButton setTitle:someStringHere].
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top