gpt4 book ai didi

core-data - 需要在 Swift 中使用 Cocoa Bindings 和 Core Data 使用第二个窗口

转载 作者:行者123 更新时间:2023-11-28 09:16:59 25 4
gpt4 key购买 nike

在引入 Swift 之后,我最近开始尝试使用 Xcode。我没有 Objective C 的背景,但我正在取得进步,尤其是在 Cocoa Bindings 和 Core Data 方面。我正在玩一个 OSX 应用程序,它有一个 xib 和一个窗口,并且绑定(bind)到一个核心数据模型。到目前为止,一切正常,我可以毫无问题地填充表格 View 。

我的下一步是包括第二个窗口,其中另一个 TableView 绑定(bind)到我的核心数据模型。我发现这是不可能实现的,因为当我试图将第二个 TableView 绑定(bind)到核心数据模型时我无法访问 AppDelegate。

所以我尝试在 MainMenu xib 中创建第二个窗口;现在绑定(bind)是可能的,但它似乎很笨拙。当然,第二个窗口需要自己的 xib,如果是这样,我究竟如何绑定(bind)到 AppDelegate?

我的目标是尽可能使用Coocoa Bindings来消除“胶水代码”,但我所有的研究只揭示了Objective C的例子,其中一些非常古老,涉及大量程序代码并且根本没有与 Xcode v6.1 相关。

我是 Xcode 的新手,但到目前为止我很喜欢它并且非常感谢任何建议或帮助。

最佳答案

单协调器应用程序模板将“App Delegate”对象添加到 MainMenu.Xib,并且它有点神奇地连接到 NSApplication 对象的委托(delegate),因为 App Delegate 对象由 Nib 加载过程创建并附加到NSApplication 实例。在另一个 Nib 中复制该对象是相当不可能的。 You can really create havoc trying to do so .

在任何其他 Nib 中执行您想要的操作的最简单方法是使用以“delegate”开头的键路径绑定(bind)到应用程序。瞧,你有你想要的。

其他人会坚持委托(delegate)对象不应该拥有核心数据堆栈,您应该将所有样板代码移到其他地方。或者,每个 View Controller 都应将 MOC 指针作为属性传递(请参阅下面的评论)......但这与这个问题并不相关。

YMMV,这个答案来自 Objective-C 宇宙,但语言应该无关紧要。

关于core-data - 需要在 Swift 中使用 Cocoa Bindings 和 Core Data 使用第二个窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27092770/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com