2011-03-31 4 views
2

今は私の辞書に文字列値とNSTextFieldを含む辞書があります。しかし、この値を更新するには、ボタンをクリックして更新コードを実行する必要があります。テキストフィールドの値が変更されるたびに動的に更新させるにはどうすればよいですか?CocoaはNSTextFieldの辞書値を自動更新します

答えて

2

Cocoa Bindingsをご覧ください。

それらは、間にすべてのグルーコードを記述することなく、あなたのビュー(NSTextField)をモデル(辞書)と同期させるように設計されています。彼らは学ぶのがやや難しいですが、一度理解すればとても便利です。

あなたの場合、NSTextFieldの「値」バインドをコードのプロパティにバインドします。

- (void)controlTextDidChange:(NSNotification *)aNotification 

辞書に値を変更する:

代替はNSTextFieldDelegateを設定し、実行することです。たとえば、

- (void)controlTextDidChange:(NSNotification *)aNotification { 
    [myDictionary setValue:[myTextField stringValue] forKey:@"MYDictionaryKey"]; 
} 

ユーザーがNSTextFieldのテキストを変更するたびに、テキストフィールドがこのコールバックをそのデリゲートに送信します。このようにして、辞書が常に画面に表示されるものと同じ値を持つことを確認できます。

あなただけのユーザーが編集を行った場合、変更を有効にする場合は、実装したい:ココアバインディングは、iOS版では使用できないことを

- (void)controlTextDidEndEditing:(NSNotification *)aNotification 
+0

注意、唯一のMac OS X – JoshL