【发布时间】:2012-03-30 22:41:24
【问题描述】:
我有几个面板包含NSTextField 控件绑定到文件的所有者 对象内的属性。如果用户编辑一个字段,然后按 Tab 键移动到下一个字段,它会按预期工作。但是,如果用户不按 Tab 并仅按 OK 按钮,则不会在 File's Owner 对象中设置新值。
为了解决这个问题,我在绑定中设置了 Updates Continuously,但这一定很昂贵(编辑:或者至少它不优雅)。
有没有办法在按下确定按钮时强制绑定更新,而不是使用持续更新?
【问题讨论】:
-
是什么让你觉得“持续更新”很贵?是吗?你有简介吗?
-
嗯,不,像往常一样 Rob,但是它在我的核心 C++ 库中设置值,这涉及到
std::string对象的构造和NSString对象之间的转换。这似乎不优雅,我认为必须有更好的方法。 -
我同意,只是对性能做出假设从来都不是一个好主意。过早的优化是邪恶的!
-
不是真的抢。当你编码的时间足够长时,你就会感觉到什么是正确的。 premature optimisation 参数是垃圾 - 第一次就可以有效地对其进行编码。对自己的工作感到满意很重要,而在不考虑性能的情况下编写代码只会让我不开心。
-
我不同意这个论点是垃圾,我看到很多过于复杂、过度设计的代码用于解决现实中不存在的感知可能的性能问题。但是,我确实同意高效地编写代码会更好。在这种情况下,我认为优化它是正确的,它更优雅,但从性能的角度来看,它可能不会对最终用户产生太大影响。但是,由于我们正在迅速偏离主题,所以我将把它留在那里。
标签: cocoa binding key-value-observing nstextfield