NSStackView 中单个内容视图的多个实例

Multiple instances of a single content view in NSStackView

我正在创建一个需要取得进展的应用程序 window,我想在其中为每个正在处理的项目动态插入一个子视图,例如 Finder 的复制文件面板 window。并在处理完成后动态删除它。

我想对所有子视图使用相同的 NSViewController 视图,并且我正在使用 NSStackView 来管理视图。

但是,为了让子视图保留在内存中,我必须保持对它们的强引用,我知道的唯一方法是为我需要显示的每个子视图创建一个 属性。像这样:

@propery (strong) NSViewController *myViewController1;
@propery (strong) NSViewController *myViewController2;
@propery (strong) NSViewController *myViewController3;
@propery (strong) NSViewController *myViewController4;
....

我想知道是否有更好、更动态的方式来做到这一点?或者我是否必须为子视图创建 x 个属性才能知道我有足够的实例来分配,因为我不知道当 运行 应用程序和导出项目时用户将需要多少个进程视图。

因此我想动态分配每个子视图并创建对它的强引用。那可能吗?或者有其他方法可以做我想做的事吗?

如果我不清楚,请告诉我,我很乐意解释更多以获得解决此问题的帮助。

您可以将对视图控制器的引用存储在 NSArray 中。数组保留对其包含的对象的强引用。