gpt4 book ai didi

Cocoa Core Data 和 Tab View - 如何判断 Tab View 何时完成 "loading",以便我可以告诉 View 自行初始化?

转载 作者:行者123 更新时间:2023-12-03 17:18:00 24 4
gpt4 key购买 nike

我正在构建一个简单的核心数据应用程序来尝试理解核心数据。它有两个实体:一个气象站和给定气象站的观测数据集合。

我为此创建了初始界面,方法是在窗口上放置一个选项卡 View ,选择第一个选项卡,然后将气象站实体拖到该 View 上;然后选择第二个选项卡并将观察实体拖到第二个选项卡上。

然后,我自己创建了第三个选项卡,并在顶部添加了一个弹出窗口。此弹出窗口绑定(bind)到 StationArrayController,因此它会填充我添加的所有气象站。这效果很好。

然后,我添加了一个表格 View 来显示与所选站点关联的观测值。这也很有效。我使用一种方法实现了这一点,该方法创建一个谓词,搜索其站点与所选站点匹配的所有观测,并将谓词附加到与第三个选项卡上的 TableView 关联的 ObservationArrayController。 (我不知道如何在 IB 中执行此操作,所以我以编程方式完成了)。

错误是这样的:如果我加载以前保存的包含气象站和观测结果的文件,当我转到第三个选项卡时,即使选择了其中一个气象站(即,它出现在弹出窗口中),所有观测值都出现在表格 View 中,而不仅仅是与该站关联的观测值。

发生这种情况是因为我没有调用将谓词附加到观察数组 Controller 的方法,直到我实际使用弹出窗口手动更改站。

所以我的问题是这样的(抱歉花了这么长时间才到达这一点!):我如何检测选项卡 View 何时加载,以便我可以强制附加谓词的方法运行,从而有一个与所选站点匹配的初始观测列表?

我尝试创建一个自定义 View 类,并将其子类化为第三个选项卡 View ,并将此代码放入 awakeFromNib 方法中,但这在该过程中还为时过早(此时加载中“选定的站”为 -1过程)。

任何帮助将不胜感激。谢谢!!

伊丽莎白

最佳答案

啊,我刚刚回答了我自己的问题!

我将 tabview 的委托(delegate)设置为 MyDocument,并在那里实现了 tabView:didSelectTabViewItem: 。我在 MyDocument 中创建了一个指向第三个选项卡 View 的 IBOutlet,并在该方法中检查是否选择了第三个选项卡,如果是,则调用该方法将谓词附加到 ObservationArrayController。效果很好!

关于Cocoa Core Data 和 Tab View - 如何判断 Tab View 何时完成 "loading",以便我可以告诉 View 自行初始化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1773538/

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