我有这个基于OSX故事板的应用程序,它以NSSplitViewController
开头,如下所示:
此splitViewController
有两个viewControllers
:主要和详细信息。
在窗口内我有一个NSToolbar
。我将NSProgressIndicator
拖到该工具栏,Xcode将其嵌入NSToolbarItem
。
现在我需要从NSProgressIndicator
到某个类创建一个插座(不是其他stackoverflow问题中解释的操作)。第一个问题是哪一个?
Xcode不会让我创建一个插座。我尝试过这些选项:
ToolbarItem
拖动到masterController
类文件,detailController类文件和NSSplitViewController
类。NSProgressIndicator
到masterController
类文件,detailController
类文件拖到NSSplitViewController
类。在所有情况下,拖动都不会显示窗口以允许我创建插座。
天哪,如何制作这样的插座?我拖到哪个班级,我该怎么做?
答案 0 :(得分:4)
我假设您的设置更像是这张图片:
默认情况下,您的Window场景由NSWindowController支持,您无法添加新的插座。你需要创建一个子类,将它与你的Window相关联,然后你应该能够在那里创建出口。
档案>新文件>可可类 指定像" SpaceDogsWindowController"这样的名称,作为NSWindowController的子类。
然后使用选择窗口控制器图标(蓝色圆圈)并在Xcode中选择Identity Inspector。 (CMD + ALT + 3)。在" Class"中指定新班级的名称。领域。
然后尝试连接插座:
1)显示助理编辑器
2)使用跳转栏确保您的自定义类可见(它位于助理编辑器窗格的顶部,应该显示为“自动”,然后您可以点击它以选择新的类;如果是'手动',将其更改为自动。
3)如果您正在进行控制拖动并且仍未提供连接,请尝试从文档轮廓中拖动(也在屏幕截图中显示)。
然后,您可以使用以下代码编辑来自其他视图控制器的进度指示器,这些控制器是该窗口视图层次结构的后代:
if let windowController = self.view.window?.windowController() as? CustomWindowController {
windowController.progressIndicator.doubleValue = 0.4
}
或者,在Objective-C中,像这样:
CustomWindowController *myWindowControllerSubclass = self.view.window.windowController;
windowController.progressIndicator.doubleValue = 0.4;
希望有所帮助。