1

我有这个基于 OSX 故事板的应用程序,它以这样的开头NSSplitViewController

在此处输入图像描述

splitViewController有两个viewControllers:master和detail。

在窗口里面我有一个NSToolbar。我将 a 拖到NSProgressIndicator该工具栏,然后 Xcode 将其嵌入到NSToolbarItem.

现在我需要从NSProgressIndicator某个类创建一个出口(而不是其他 stackoverflow 问题中解释的操作)。第一个问题是哪一个?

Xcode 不会让我创建一个插座。我已经尝试了这些选项:

  1. ToolbarItemto masterControllerclass 文件、detailController 类文件和 to NSSplitViewControllerclass 中拖动。
  2. 从 ToolbarItem 拖到委托类。
  3. NSProgressIndicatorto masterControllerclass 文件、detailControllerclass 文件和 to NSSplitViewControllerclass 中拖动。
  4. 从 NSProgressIndicator 拖到委托类。
  5. 从 NSToolbarItem 和 NSProgressIndicator 拖到 Window Controller First Responder。

在所有情况下,拖动都不会出现允许我创建出口的窗口。

看在上帝的份上,我该如何创建这样的插座?我把它拖到哪个班级,我该怎么做?

4

1 回答 1

5

我假设您的设置更像这张图片:

BasicCocoaAppWithSplitviewAndToolBar

默认情况下,您的 Window 场景由 NSWindowController 支持,您无法向其添加新的插座。您需要创建一个子类,将其与您的 Window 相关联,然后您应该能够在其中创建插座。

File > New File > Cocoa Class 指定一个类似“SpaceDogsWindowController”的名称,作为 NSWindowController 的子类。

然后使用选择窗口控制器图标(蓝色圆圈)并在 Xcode 中选择 Identity Inspector。(CMD+ALT+3)。在“班级”字段中指定新班级的名称。

然后尝试连接插座:

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;

希望有帮助。

于 2014-12-18T20:35:17.633 回答