问题标签 [nsstoryboard]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
2259 浏览

xcode - OS X 故事板在 applicationDidFinishLaunching 之前调用 viewDidLoad

我使用情节提要在 Xcode 中创建了一个 Mac OS X 应用程序。由于某种原因,在 NSViewControllersapplicationDidFinishLaunching中调用了 AppDelegateviewDidLoad中的方法。与 iOS 应用程序一样,我认为viewDidLoad应该在之前调用applicationDidFinishLaunching?OS X 应用程序中的故事板是否会在应用程序完成启动之前初始化视图控制器?

我正在使用该applicationDidFinishLaunching方法将默认设置注册到 NSUserDefaults。不幸的是,在故事板中的视图加载后注册默认值。因此,当我在每个视图控制器中使用 设置视图时viewDidLoad,尚未设置 NSUserDefaults 中的默认数据。如果我不能applicationDidFinishLaunching用来在 OS X 故事板应用程序中注册 NSUserDefaults,那么我之前如何设置默认值viewDidLoad

为了解决这个问题,Main.storyboard在 Xcode 中,我关闭了主窗口的“Is Initial Controller”。我将情节提要 ID 分配给主窗口作为“MainWindow”。然后在 AppDelegate 中输入以下代码:

该应用程序不会崩溃,但现在该窗口永远不会出现。下图显示了我正在使用的情节提要:

在此处输入图像描述

0 投票
1 回答
993 浏览

macos - OSX / macOS - 如何将 xib 迁移到情节提要

我有一个带有 mainmenu.xib 的应用程序,出于各种原因,我想将它迁移到情节提要。有没有办法在不创建新项目的情况下做到这一点?

0 投票
2 回答
2245 浏览

macos - NSWindow 关闭后 activateIgnoringOtherApps 和 makeKeyAndOrderFront 不起作用

我从一个故事板项目开始。我把菜单栏项目。单击菜单栏项时,会在 AppDelegate.swift 中触发以下方法。

这将我的应用程序放在了前面。但是一旦我点击关闭按钮,窗口上的红色按钮,它就永远不起作用。

无论我关闭窗口,它都可以在基于非故事板的项目中工作。

我已经设定

在 applicationDidFinishLaunching()

任何人都可以帮助我吗?

0 投票
2 回答
930 浏览

swift - 在 Swift Storyboards for mac 中从一个 NSViewController 切换到另一个

我有一个问题,我正在尝试解决很长一段时间。项目文件也提供。

所以我有以下想法,有一个带有按钮的侧边栏,当点击按钮时,它只切换右侧的内容。

我最初创建了一个只有 1 个故事板的项目。Window 启动第一个 ViewController,带有按钮和自定义视图。

我需要的是当按下其中一个按钮时,自定义视图被另一个 ViewController 的内容替换。只是视图,而不是整个以前的视图控制器被另一个替换。

我怎么做?赛格斯?层?请迫切需要帮助,因为我无法弄清楚故事板,但想和他们一起工作很多。这会让我开始。

我在想的另一种选择是,如果我使用 splitview 会更好吗?那么我可以用另一个完全正确的替换右侧视图sontroller?

链接到 Xcode 中的项目文件

我的故事板

0 投票
0 回答
58 浏览

ios - 如果使用 NSWindowsController,NSStoryboard 和 Nib 不会加载 NSObject

对于工作,我使用 Viper 架构并通过 NSObject 构建模块,我直接通过 Storyboard 或 Nib 连接。这很好用,但是如果你通过 NSViewController 连接到 segue NSWindowsControllers,应用程序会崩溃并出现错误,因为它没有被称为 NSObject。当然也有通过“storyboard.instantiateControllerWithIdentifier(identifier:)”来收集模块的选项,但是我想用Nibs,出现可选性错误。

所以看起来 NSStoryboard

GitHub 示例

0 投票
1 回答
756 浏览

swift - 如何通过 segue 将数据从一个视图控制器传递到另一个具有选项的视图控制器

当我单击 NSCollectionViewItem 时,我试图让我的数据从一个视图传递到下一个视图。单击一个项目时,我只想将一些数据传递给一个新视图,以获得每个项目的更“详细”视图。

我不断收到“致命错误:在展开可选值时意外发现 nil”。我觉得我错过了 ProductDetail.swift 文件中的一个关键步骤。错误发生在我的 prepare() 方法中 ViewController.swift 的底部。如何为 OS X 执行此操作的过程与 iOS 完全不同,因此我们将不胜感激。

ViewController.swift

test1.swift

ProductDetail.swift

0 投票
2 回答
862 浏览

swift - 在 Swift 中制作 NSWindowController 单例的正确方法是什么?

我有一个示例项目:

https://github.com/ericgorr/nspanel_show.git

我的项目是一个故事板,基于文档的应用程序。我想使用自定义 segue 来切换检查器窗口的可见状态。我所拥有的应该可以工作,但我不能完全确定如何使检查器窗口成为单例。

我相信我应该从:

但是,在我的情况下,初始化应该是什么样的,这让我无法理解,尤其是因为窗口位于情节提要内。

0 投票
1 回答
858 浏览

macos - 为什么 NSApplication sharedApplication mainMenu 返回 nil?

苹果的文档说:

菜单栏中的所有应用程序菜单都归一个 NSMenu 实例所有,该实例由应用程序在启动时创建。您可以使用 NSApplication 方法 mainMenu 检索此主菜单。

我在我的委托类中有以下内容来获取应用程序的菜单:

为什么是mainMenu零?我在错误的时间打电话吗?放入[[NSApplication sharedApplication] mainMenu]我的视图控制器loadView也返回 nil。

我要做的就是将项目添加到应用程序菜单栏。

0 投票
1 回答
84 浏览

swift - macOS 中的多页应用程序

我正在尝试制作一个侧面有四个按钮的应用程序(即主页、创建等)。单击按钮时,它会加载一些新内容 - 也许使用容器?

不过,我似乎无法在故事板上连接事物。我想问题归结为这个 - 我如何使用按钮来切换到新页面或在容器中加载新内容?

0 投票
1 回答
299 浏览

cocoa - NSTextView 不会从 NSFontPanel 更改字体大小或颜色

我创建了一个基本的 NSTextView,我在 Interface Builder 中选择了以下选项:

  • 可编辑
  • 可选择的
  • 字段编辑器
  • 富文本
  • 撤消
  • 图形
  • 非连续布局
  • 字体面板
  • 统治者
  • 检查员栏

我将 NSViewController 设置为 NSTextView 的代表,我为此 NSTextView 所做的唯一其他自定义事情是启用插入选项卡和新行(通过接受第一响应者):

当我尝试使用字体面板+检查器栏中的命令时,除了更改字体大小或颜色外,所有命令都可以正常工作,有什么问题吗?或者我是否需要做额外的绑定/委托等才能工作?

这很奇怪,因为如果我更改字体本身(选定文本的)或粗细,它可以正常工作(不需要编码)。

更新

我找到了导致此问题的根源。我在使用 Modal segue 显示的 ViewController 中显示 TextView。如果我从 Modal 更改为 Show,大小和颜色都可以正常工作。插入新行和制表符也不需要额外的命令。

有什么理由会这样吗?是否应该对 segue 进行任何定制以避免这种情况?而且,为什么视图控制器显示会影响字体面板的行为?