- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在构建一个简单的核心数据应用程序来尝试理解核心数据。它有两个实体:一个气象站和给定气象站的观测数据集合。
我为此创建了初始界面,方法是在窗口上放置一个选项卡 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/
我发现以下帖子非常有帮助: How to pickle yourself? 但是,此解决方案的局限性在于,重新加载类时,它不会以其“运行时”状态返回。即它将重新加载所有变量等以及类在转储时的一般状态.
我是一名优秀的程序员,十分优秀!