Изучите использование привязок какао .
Они предназначены для синхронизации вашего представления (NSTextField) с вашей моделью (словарем) без написания всего промежуточного кода. Их немного сложно освоить, но как только вы их поймете, они будут очень полезны.
В вашем случае вы бы привязали привязку «value» NSTextField к свойству в вашем коде.
Альтернативой является настройка NSTextFieldDelegate и реализация:
- (void)controlTextDidChange:(NSNotification *)aNotification
чтобы изменить значение в словаре. Например,
- (void)controlTextDidChange:(NSNotification *)aNotification {
[myDictionary setValue:[myTextField stringValue] forKey:@"MYDictionaryKey"];
}
Теперь, когда пользователь изменяет текст в NSTextField, текстовое поле запускает этот обратный вызов своему делегату. Таким образом, вы можете убедиться, что словарь всегда имеет то же значение, что и то, что отображается на экране.
Если вы хотите, чтобы изменения вступили в силу только после того, как пользователь завершил редактирование, вы должны реализовать:
- (void)controlTextDidEndEditing:(NSNotification *)aNotification