cocoa - Edit/Design NSView 可视化
cocoa - Edit/Design NSView visually
如何在 Xcode 中直观地设计 NSView?我正在尝试构建一个只有 statusMenu 的 statusBar 应用程序
正如你在上面看到的,对象出现了,但我无法对其进行可视化编辑,结果是这样的:
我尝试使用 XIB 文件(只有 NSView,没有 ViewController),但我无法将 XIB 中的 NSView 放入 AppDelegate。我尝试了其他方法并设法使用了 XIB 文件,但是我无法使用 Storyboard。
你对这种情况有什么想法吗?
更新
感谢 Max 回答我的问题。我之前确实尝试过但失败了。在您发表评论后我又试了一次,但仍然没有运气。这是我的做法
我创建了一个 ViewController 然后我将其视图更改为 MenuCustomView (NSView)
这是 AppDelegate
中的代码
let statusBar = NSStatusBar.systemStatusBar().statusItemWithLength(-1)
var menuCustomView = NSView()
func applicationDidFinishLaunching(aNotification: NSNotification) {
// Insert code here to initialize your application
let statusIcon = NSImage(named: "statusIcon")
let statusMenu = NSMenu()
statusBar.image = statusIcon
statusBar.menu = statusMenu
let menuItem = NSMenuItem()
menuItem.title = "title"
var vc = ViewController()
menuCustomView = vc.view
menuItem.view = menuCustomView
statusMenu.addItem(menuItem)
}
我在项目中的文件
即使您不需要视图控制器,您也可以使用它们来设计视图。在情节提要中创建一个,按照您想要的方式编辑视图。
然后您可以通过从情节提要中创建一个 viewController 并使用其视图 属性 将视图附加到 NSStatusBarItem
来使用该视图
我在代码中的话:
let storyboard = NSStoryboard(name: "Main", bundle: nil)
let viewController = storyboard?.instantiateControllerWithIdentifier("MyViewController") as! NSViewController
let view = viewController.view
我假设您想向视图添加功能代码。例如,为了响应按钮单击,您必须子类化 NSViewController,然后实现您将添加到 AppDelegate 的代码。
如果您需要更多解释,请随时给我写信:)
如何在 Xcode 中直观地设计 NSView?我正在尝试构建一个只有 statusMenu 的 statusBar 应用程序
正如你在上面看到的,对象出现了,但我无法对其进行可视化编辑,结果是这样的:
我尝试使用 XIB 文件(只有 NSView,没有 ViewController),但我无法将 XIB 中的 NSView 放入 AppDelegate。我尝试了其他方法并设法使用了 XIB 文件,但是我无法使用 Storyboard。
你对这种情况有什么想法吗?
更新
感谢 Max 回答我的问题。我之前确实尝试过但失败了。在您发表评论后我又试了一次,但仍然没有运气。这是我的做法
我创建了一个 ViewController 然后我将其视图更改为 MenuCustomView (NSView) 这是 AppDelegate
中的代码 let statusBar = NSStatusBar.systemStatusBar().statusItemWithLength(-1)
var menuCustomView = NSView()
func applicationDidFinishLaunching(aNotification: NSNotification) {
// Insert code here to initialize your application
let statusIcon = NSImage(named: "statusIcon")
let statusMenu = NSMenu()
statusBar.image = statusIcon
statusBar.menu = statusMenu
let menuItem = NSMenuItem()
menuItem.title = "title"
var vc = ViewController()
menuCustomView = vc.view
menuItem.view = menuCustomView
statusMenu.addItem(menuItem)
}
我在项目中的文件
即使您不需要视图控制器,您也可以使用它们来设计视图。在情节提要中创建一个,按照您想要的方式编辑视图。
然后您可以通过从情节提要中创建一个 viewController 并使用其视图 属性 将视图附加到 NSStatusBarItem
我在代码中的话:
let storyboard = NSStoryboard(name: "Main", bundle: nil)
let viewController = storyboard?.instantiateControllerWithIdentifier("MyViewController") as! NSViewController
let view = viewController.view
我假设您想向视图添加功能代码。例如,为了响应按钮单击,您必须子类化 NSViewController,然后实现您将添加到 AppDelegate 的代码。
如果您需要更多解释,请随时给我写信:)