gpt4 book ai didi

objective-c - 如何从 NSPageController arrangedObjects 中删除对象?

转载 作者:搜寻专家 更新时间:2023-10-30 20:28:03 25 4
gpt4 key购买 nike

如何在页面 Controller 中动态添加/删除对象?在应用程序生命周期内,所有示例都在 awakeFromNib 方法期间设置了 arrangedObjects 属性一次。

在我的应用程序中,我使用 NSPageController 在主窗口中显示了 NSObjects 的 NSMutableArray。对于每个 NSObject,我在委托(delegate)的 - (NSViewController *) pageController:(NSPageController *) pageController 中创建相应的 ViewController
viewControllerForIdentifier:(NSString *) 标识符
方法。

在程序执行期间,对象将异步添加到可变数组或从可变数组中删除。在每次事件中,我都将页面 Controller 的 arrangedObjects 设置为可变数组以说明更改 - 显示新对象并停止显示已删除的对象。

添加对象后一切正常。但是当删除对象时,关联的 View / View Controller 保留在内存中。

我怎样才能“重置”页面 Controller ,以便它忘记有关已删除对象的所有信息?

看起来页面 Controller 保留了已删除对象的 View Controller 的引用(快照)。当添加其他对象时,它们的 View 会变得困惑。

最佳答案

按照此处所述尝试在历史模式下使用 NSPageController

How do you implement NSPageController to navigate through a webView's history

这里

https://developer.apple.com/library/mac/documentation/AppKit/Reference/NSPageController_Class/

在这种情况下你不需要实现

pageController:identifierForObject: 

pageController:viewControllerForIdentifier

无需设置

arrangedObjects

但是你需要打电话

navigateForwardToObject

每次你想打开一个新页面,这个方法让NSPageController清除转发历史并打开一个新页面。还可以使用此方法中的新页面向您的 pageController.view 添加新 View 。我也在

中进行了 View 替换
didTransitionToObject

关于objective-c - 如何从 NSPageController arrangedObjects 中删除对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26805209/

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