Macos 开发多窗口Mac应用程序所需的建议
我已经读了好几本关于Mac开发的书,但是找不到我想要的信息 这些书都描述了如何制作浮动窗口或窗格,但从来没有提到如何在一个窗口中制作它们。下面是我希望创建的一个简化示例: 基本上有三个窗口,;一个选择器窗口,带有单选按钮,可选择当前正在使用的NSDocument,该窗口下方的一个窗口带有按钮,这些按钮在右侧显示不同的窗口,允许查看和操作某些数据 例如,每个NSDocument可能有一个颜色值,可以在单击视图a显示的窗口中设置,还有一些文本字符串,可以在单击视图B显示的窗口中设置 因此,问题是:Macos 开发多窗口Mac应用程序所需的建议,macos,cocoa,Macos,Cocoa,我已经读了好几本关于Mac开发的书,但是找不到我想要的信息 这些书都描述了如何制作浮动窗口或窗格,但从来没有提到如何在一个窗口中制作它们。下面是我希望创建的一个简化示例: 基本上有三个窗口,;一个选择器窗口,带有单选按钮,可选择当前正在使用的NSDocument,该窗口下方的一个窗口带有按钮,这些按钮在右侧显示不同的窗口,允许查看和操作某些数据 例如,每个NSDocument可能有一个颜色值,可以在单击视图a显示的窗口中设置,还有一些文本字符串,可以在单击视图B显示的窗口中设置 因此,问题是:
单选按钮仅用于说明我需要多个文档。我想我需要不止一个人来处理这个?或者我应该把它们都放在一个文档中?不知何故,这似乎并不正确。要实现您想要的功能,您需要一个窗口(
NSWindow
),一个窗口控制器和各种视图,每个视图都有自己的视图控制器。根据您的要求,您可以通过多种方式进行设置:
- 您至少有3个视图(NSView的实例):一个用于选择文档类,一个用于选择视图,另一个用于选择内容。每个视图都由视图控制器(NSViewController的实例)控制。此外,您还可以选择将视图包装在拆分视图中(
),以便用户可以调整每个视图的可用房地产大小NSSplitView
- 您有一个带有窗口控制器的窗口。如果您在Xcode中选择基于文档的应用程序模板,Xcode将生成
的子类,您可以将其用作窗口控制器(或者选择使用核心数据,Xcode将生成NSDocument
的子类,其中包含访问核心数据以实现文档持久性所需的所有提示)NSPersistentDocument
2:这里没有一个场景,但有一个对我有效:使用基于文档的应用程序的项目模板(有或没有核心数据)。使用生成的
NSDocument
(或NSPersistentDocument
)子类作为窗口控制器。使用NSView
实现窗口中的视图,其中每个视图都由自己的控制器管理,该控制器是NSViewController
的一个实例 我知道这是个老问题,但一种方法是使用ContainerViews,并将其嵌入序列设置为所需的视图控制器。您询问的是多窗口应用程序,但从您的绘图中,我得到的印象是,您希望开发一个多视图应用程序,在单个窗口的边界内处理所有视图……请参阅上面的编辑。是的,你的解释听起来很对。但我想我需要多个控制器,或者不需要?见我的答案。您需要多个NSViewController。非常感谢您的建议。这很有帮助,因为我找不到这方面的信息。