我一直在阅读有关Mac开发的几本书,但找不到我正在寻找的信息。
这些书都描述了如何制作浮动窗户或窗格,但从未提及如何在一个窗口中制作它们。我想要创建的简化示例如下所示:
基本上会有三个窗口;一个带有单选按钮的选择器窗口,用于选择当前正在使用的NSDocument,下面有一个窗口,其中的按钮显示右侧的不同窗口,允许查看和操作某些数据。
例如,每个NSDocument可以有一个颜色值,可以通过单击视图A在显示的窗口中设置,以及一些文本字符串,可以通过单击视图B在显示的窗口中设置。
所以问题是:
我只是在寻找有关阅读内容的指导,所以任何指针都会受到赞赏。
编辑:
为了进一步说明这一点,我想要一个表格视图,其中按钮是(查看A& B),通过点击它们,它们将导致另一个窗口/视图改变它的内容。
就像iPad设置应用程序中的拆分视图一样,左侧有一个表格视图,当按下它时,右侧会发生变化。
单选按钮仅用于说明我需要多个文档。我猜我需要不止一个来处理这个问题?或许我应该将它们全部放在一个NSDocument中?不知何故,这似乎不对。
答案 0 :(得分:2)
要实现您想要的功能,您需要一个窗口(NSWindow
),一个窗口控制器和各种视图,每个视图都有自己的视图控制器。您可以通过多种方式进行设置,具体取决于您的要求:
您至少有3个视图(NSView
个实例):一个用于选择文档类,一个用于视图选择,一个用于内容。每个视图由视图控制器(NSViewController
的实例)控制。此外,您可以选择在拆分视图(NSSplitView
)中包装视图,以便用户可以调整每个视图可用的空间。
您有一个带窗口控制器的窗口。如果您在Xcode中选择基于文档的应用程序模板,Xcode将生成NSDocument
的子类,您可以将其用作窗口控制器(或选择使用Core Data和Xcode将生成NSPersistentDocument
的子类您需要访问Core Data以获取文档持久性的所有花哨功能。
回到你的问题:
1:是的,但取决于您的要求。如果Doc#1与Doc#2完全不同,那么您可能需要重新评估。例如,Doc#1可能具有与#2完全不同的持久性要求。
2:这里没有单一的方案,但是对我有用的方法:为基于文档的应用程序(带或不带Core Data)获取项目模板。使用生成的NSDocument
(或NSPersistentDocument
)子类作为窗口控制器。使用NSView
在您的窗口中实现视图,其中每个视图由其自己的控制器管理,该控制器是NSViewController
的实例。
答案 1 :(得分:0)
我知道这是一个老问题,但是如何使用它是一种方法:ContainerViews并将它们的嵌入segue设置为你想要的视图控制器。