一尘不染

如何在Xcode 6和Storyboard中使用NSToolBar?

swift

我一直在尝试构建可可应用程序,该应用程序在Xcode 6 中使用Swift和Storyboard ,但是如何在其中使用NSToolbar呢?

在Xcode 5和xib中,您可以NSToolbar从对象库中添加到任何.xib文件,然后单击添加的工具栏上的,以展开它,并将连接从那里的任何项目拖放到AppDelegate.h文件中。这样,您
可以创建一个IBAction或IBOutlet连接。我确认如果在Xcode6中使用Swift和non-storyboard,也可以做到这一点。但是,看起来在Xcode 6和Storyboard环境中并非如此。

我首先创建了一个在Xcode 6中使用Storyboard的项目,但是后来,我无法在Object Library
中将NSToolbarfrom从中添加到Storyboard中的View Controller 。因此,我将其添加到Storyboard中WindowController的Window对象中。但是,以这种方式,我无法创建从
扩展工具栏中的任何项目到AppDelegate.swift或的那些连接ViewController.swift。

所以我的问题是:

创建使用的情节提要应用程序是否可行NSToolbar?如果可行,NSToolbar向Window Controller NSToolBar中添加控件是在Storyboard中使用的正确方法吗?最后,如何在其中创建@IBOutlet和@IBAction连接?
更新
我发现@GeorgeVillasboas接受的答案仅适用于@IBAction。我仍在寻找如何建立@IBOutlet连接的方法…


阅读 291

收藏
2020-07-07

共1个答案

一尘不染

我有这个同样的问题。该解决方案适用于Objective-C和Swift项目。

正如您所描述的,它与OSX上的Storyboard一起使用时,创建了一个NSWindow实例,并选择了另一个NSViewController作为其Window Content Segue。

在ViewController上,创建标准的IBAction以在单击工具栏时接收动作。要将其与NSToolbar连接起来,只需将NSToolbarItem中的Control(对象)拖放到FirstResponder对象,
如下图所示。

在XCode 6上连接NSToolbar

这将打开可用连接的巨大列表。您的IBAction将在该列表上。只要选择它,您就可以开始了。

希望这可以帮助!

2020-07-07