Ho due finestre: la finestra A è caricata da NIB; e la finestra B è creata a livello di codice.binding: toObject: withKeyPath: options: è un collegamento unidirezionale?
Entrambe le finestre hanno un NStextView: l'attributedString del TextView in Window A è legato alla proprietà text
di un modello utilizzando IB; mentre la stringa attribuita della vista testo in Finestra B è associata alla proprietà text
del modello utilizzando il metodo -[NSObject bind:toObject:withKeyPath:options:]
.
[textview bind:@"attributedString" toObject:obj withKeyPath:@"text" options:nil];
Ecco la cosa strana: il TextView in finestra B è infatti legato al obj.text
, ma i cambiamenti nella TextView non viene mai aggiornato per obj.text
. Ma, se ho apportato modifiche nella finestra di testo della Finestra A, lo obj.text
e la vista testo nella Finestra B vengono aggiornati di conseguenza.
Quindi, sto pensando, il metodo -[NSObject bind:toObject:withKeyPath:options:]
è solo per il collegamento unidirezionale. Non ho trovato una spiegazione chiara nelle documentazioni di Cocoa. Qualcuno ha esperienza con questo problema? Come implementate l'associazione bidirezionale nel codice?
Questo non funzionava ancora per me. Ho trovato la risposta (per il mio caso) qui -> http://stackoverflow.com/questions/1169097/can-you-manually-implement-cocoa-bindings –
Non sono sicuro della pertinenza della domanda collegata sopra . L'associazione qui menzionata si trova tra due oggetti NSControl: non è richiesta alcuna implementazione di associazione personalizzata. – stevesliva