如何在Xcode中直观地设计NSView?我正在尝试使用statusMenu构建一个statusBar应用
正如您在上面看到的那样,对象出现但我无法直观地编辑它,结果就是这样:
我试图使用XIB文件(只有一个NSView,没有ViewController),但我不能将XIB中的NSView放入AppDelegate。我尝试了另一种方法并设法使用XIB文件,但后来我无法使用故事板。
你对这种情况有什么看法吗?
更新
感谢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)
}
我在项目中的文件
答案 0 :(得分:1)
即使您不需要视图控制器,也可以使用它们来设计视图。在故事板中创建一个,按照您想要的方式编辑视图。
然后,您可以通过在故事板外创建一个viewController并使用其view属性将视图附加到NSStatusBarItem
我在代码中的说法:
let storyboard = NSStoryboard(name: "Main", bundle: nil)
let viewController = storyboard?.instantiateControllerWithIdentifier("MyViewController") as! NSViewController
let view = viewController.view
我假设您要在视图中添加正常运行的代码。例如,要响应按钮单击,您必须继承NSViewController,然后实现您将添加到AppDelegate的代码。
如果您需要更多解释,请随时写信给我:)