【发布时间】:2012-03-06 09:32:01
【问题描述】:
我有一个核心数据项目。
基本上我有一个 NSTableView,我在其中添加了一些实体(使用“添加:”选择器),双击 TableView 会打开一个新的 NSWindow,可以在其中使用一些 NSTextFields 编辑实体。 每个文本字段都绑定到实体的一个属性。
一切正常,除了实体的属性仅在文本字段失去焦点时更新。
如果我在第一个文本字段上书写,然后移至第二个,我的输入将被保存,但如果我在第一个文本字段上书写并关闭窗口,我的更改将丢失。
如何在文本字段中写入内容后立即更新我的核心数据实体?我应该使用 textDidChange: 吗?
--- 更新 ---
很遗憾,[上下文保存] 不起作用。如果我理解正确,实体在 NSTextField 辞职第一响应者之前不被修改。
目前唯一可行的解决方案是:
(void)controlTextDidChange:(NSNotification *)aNotification
{
NSTextField *tf = [aNotification object];
[self.window makeFirstResponder:tf];
}
但这很不优雅,无论如何我还需要在 NSTextField 的末尾重新设置光标。
【问题讨论】:
标签: xcode core-data binding nstextfield