/ / Como vincular valor a propriedade do NSWindow no Interface Builder? - objective-c, macos, construtor de interfaces, observação de valores-chave

Como ligar o valor à propriedade do NSWindow no Interface Builder? - objective-c, macos, construtor de interfaces, observação de valores-chave

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:

insira a descrição da imagem aqui

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 № 1

Cacau 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: Construtor de interface Xcode

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. Construtor de interface Xcode

É isso! NSTextField está agora ligado ao IMWindow classe.

Mas lembre-se: você deve considerar usar um NSWindowController para isso em vez disso!