现在,我的界面中有一个包含字符串值和NSTextField的字典。但是,为了更新此值,我必须单击一个按钮,然后运行更新代码。如何在文本字段的值发生变化时动态更新它?
答案 0 :(得分:2)
它们旨在使您的视图(NSTextField)与您的模型(字典)保持同步,而无需在其间编写所有粘合代码。他们学习起来有点棘手,但一旦你了解它们,它们就非常有用。
在您的情况下,您将NSTextField的“value”绑定绑定到代码中的属性。
另一种方法是设置NSTextFieldDelegate并实现:
- (void)controlTextDidChange:(NSNotification *)aNotification
修改字典中的值。例如,
- (void)controlTextDidChange:(NSNotification *)aNotification {
[myDictionary setValue:[myTextField stringValue] forKey:@"MYDictionaryKey"];
}
现在,只要用户修改NSTextField中的文本,文本字段就会将此回调触发到其委托。这样,您可以确保字典始终具有与屏幕上显示的值相同的值。
如果您只希望更改在用户完成编辑后生效,则执行:
- (void)controlTextDidEndEditing:(NSNotification *)aNotification