gpt4 book ai didi

macos - 在 NSToolbar 内为 NSProgressIndicator 创建一个 socket

转载 作者:行者123 更新时间:2023-12-03 16:52:20 25 4
gpt4 key购买 nike

我有一个基于 OSX Storyboard的应用程序,它以 NSSplitViewController 开头,如下所示:

enter image description here

这个splitViewController有两个viewController:master和detail。

窗口内有一个 NSToolbar。我将 NSProgressIndicator 拖到该工具栏上,Xcode 将其嵌入到 NSToolbarItem 中。

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

Xcode 不允许我创建 socket 。我尝试过这些选项:

  1. ToolbarItem 拖动到 masterController 类文件、detailController 类文件和 NSSplitViewController 类。
  2. 从 ToolbarItem 拖动到委托(delegate)类。
  3. NSProgressIndicator 拖到 masterController 类文件、detailController 类文件和 NSSplitViewController 类。<
  4. 从 NSProgressIndicator 拖动到委托(delegate)类。
  5. 从 NSToolbarItem 和 NSProgressIndicator 拖动到窗口 Controller 第一响应程序。

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

老天啊,我该如何创建这样的导出?我将其拖到哪个类以及如何操作?

最佳答案

我假设您的设置更像是下图:

BasicCocoaAppWithSplitviewAndToolBar

默认情况下,您的窗口场景由 NSWindowController 支持,您无法向其中添加新的导出。您需要创建它的子类,将其与您的窗口关联,然后您应该能够在其中创建导出。

文件 > 新建文件 > Cocoa 类指定一个名称,如“SpaceDogsWindowController”,作为 NSWindowController 的子类。

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

然后尝试连接 socket :

1) 显示助理编辑器

2) 使用跳转栏确保您的自定义类可见(它位于助理编辑器 Pane 的顶部,它应该显示“自动”,您可以点击它来选择您的新类;如果它显示“手动”,将其更改为自动)。

3) 如果您按住 Control 进行拖动,但仍无法建立连接,请尝试从文档大纲中进行拖动(也显示在屏幕截图中)。

然后,您可以使用如下代码从其他 View Controller (这些 View Controller 是该窗口 View 层次结构的后代)编辑该进度指示器:

    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;

希望有帮助。

关于macos - 在 NSToolbar 内为 NSProgressIndicator 创建一个 socket ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27554966/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com