首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >反转Cocoa绑定并识别绑定目标视图?

反转Cocoa绑定并识别绑定目标视图?
EN

Stack Overflow用户
提问于 2012-06-08 02:57:47
回答 1查看 138关注 0票数 3

我有一个公开NSString属性的自定义类。在接口生成器中,我已经将NSButtontitle绑定到我的自定义类的属性。

是否可以从我的自定义类中获取对NSButton实例的引用?

本质上,我正在尝试定位所有绑定到我的自定义类中的属性的用户界面元素。

EN

回答 1

Stack Overflow用户

发布于 2012-11-28 20:16:25

可以将多个观察者绑定到您的属性。使用这种方法,我要提醒您,您可能需要付出额外的努力才能让数组不保留观察者,因为传统上KV观察值不会保留观察者对象,如果您通过将它们放在NSArray中开始保留它们,则很可能会遇到泄漏/堆增长。

覆盖addObserver:...removeObserver:...的另一个陷阱是,如果没有大量的额外工作,您将不知道观察是针对绑定还是针对其他对象(例如,依赖的keyPath通知)。一种可能的解决方法是在以后的运行循环中使用performSelector:afterDelay:在所有exposedBindings上通过infoForBinding:询问观察者。

依赖KVO系统的私有实现细节不太可能是一种好方法,除非您的目标只是为了更好地了解KVO是如何工作的,但听起来您实际上是在尝试完成一些事情。

真的,整个方法感觉就像是灾难的秘诀。这听起来像是从一开始就违反了MVC。为什么模型对象需要知道视图对象?几乎可以肯定的是,如果将nib放在一个拥有所有UI元素和模型属性的IBOutlets的NSViewController子类中,则可以更好地完成这里要完成的任何任务。然后,该对象将能够更干净地管理视图和模型对象之间明显复杂的关系,而无需运行时技巧。由于您还没有详细说明此技巧的最终目标,因此很难说最好的方法是什么。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10938135

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档