Eu subclassei NSWindow
(nomeado IMWindow
) para fazer minhas próprias propriedades. Agora eu quero ligar o valor de NSTextField
a uma das propriedades de IMWindow
. Eu sei que é possível NSUserDefaults
controladores ou delegado de aplicativos. Mas não oferece opção para NSWindow
.
Eu gostaria de ver se eu posso vincular o valor ao objeto arbitrário.
Captura de tela:
Código:
@interface IMMainWindow ()
@property (nonatomic, strong) NSString *line1Text;
@end
É difícil encontrar qualquer material avançado no Interface Builder para o OS X.: - /
Respostas:
2 para resposta № 1Cacau usa o MVC (Model-View-Controller) padronizar. Você deve ligar o valor do campo de texto a um controlador, não a própria janela. Não subclasse NSWindow
- criar um NSWindowController
subclasse com um XIB (para que o controlador de janela se torne Proprietário do Arquivo) e, em seguida, adicione seu line1Text
propriedade para o NSWindowController
subclasse e vincule o campo de texto ao objeto Owner do Arquivo no XIB.
0 para resposta № 2
Eu concordo com resposta do indragie. Dito isto, é possível fazer o que você está pedindo.
Primeiro você tem que definir a classe personalizada do seu IMWindow.xib
. Para fazer isso, selecione a janela à esquerda e clique no ícone destacado em azul à direita e digite o nome da sua turma:
Quando isso é feito, você tem que criar uma propriedade para o seu NSTextField
isso é feito selecionando o campo de texto eclique no ícone do meio no topo (aquele que tem um arco e botões). Selecione o ícone azul destacado à direita (o círculo com uma seta). Agora pressione o círculo na linha "New Reference Outlet" e arraste o mouse para o arquivo de cabeçalho de IMWindow
.
É isso! NSTextField
está agora ligado ao IMWindow
classe.
Mas lembre-se: você deve considerar usar um NSWindowController
para isso em vez disso!