现在,我的界面中有一个包含字符串值和NSTextField的字典。但是,为了更新此值,我必须单击一个按钮,然后运行更新代码。每当文本字段的值更改时,如何使它动态更新?
最佳答案
查看使用Cocoa Bindings。
它们旨在使您的视图(NSTextField)与模型(词典)保持同步,而无需在其间编写所有粘合代码。学习起来有些棘手,但是一旦您了解了它们,它们就会非常有用。
您需要将NSTextField的“值”绑定绑定到代码中的属性。
另一种方法是设置NSTextFieldDelegate并实现:
- (void)controlTextDidChange:(NSNotification *)aNotification
修改字典中的值。例如,
- (void)controlTextDidChange:(NSNotification *)aNotification {
[myDictionary setValue:[myTextField stringValue] forKey:@"MYDictionaryKey"];
}
现在,每当用户修改NSTextField中的文本时,该文本字段都会将此回调触发给其委托。这样,您可以确保字典始终具有与屏幕上显示的值相同的值。
如果只希望更改在用户完成编辑后生效,则可以实现:
- (void)controlTextDidEndEditing:(NSNotification *)aNotification
关于objective-c - cocoa 从NSTextField自动更新字典值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5493902/