所以在这里我试图摆脱@NSApplicationMain来熟悉事情的深入工作。 我在musically_ut OSX application without storyboard or xib files using Swift
找到了这个很好的答案然而,它不太有用! 这是奇怪的结果:视图没有链接到窗口,此外,窗口不是它应该的位置!
找到我在没有使用storyboard的情况下启动了xcode项目,然后创建了main.swift,AppDelegate.swift,ViewController.swift,并粘贴了这个人提供的每个内容。然而它不起作用。
有人可以提供可靠的方法来启动OSX应用程序 @NSApplicationMain?
答案 0 :(得分:2)
看起来您的代码实际上 正在运行,但您需要做一些其他事情才能让它按照您希望的方式运行。您有一个窗口正在从Interface Builder中的MainMenu.xib
加载 - 这是一个带有" 911"的窗口。在标题栏中。您已经获得了以编程方式创建的第二个窗口。那是屏幕左下角的窗口。
首先,您的Window
文件中仍然显示MainMenu.xib
。单击MainMenu.xib
,在Interface Builder中打开它时,查看左侧窗格中的项目。我猜测有一个Window
图标。你想点击它并删除它。
之后,您只需在左下角有一个窗口。它看起来像一个"视图"由于您尚未配置窗口的styleMask
属性,因此未附加到窗口。您可能需要styleMask
,如下所示:
let styleMask = NSTitledWindowMask
| NSClosableWindowMask
| NSMiniaturizableWindowMask
| NSResizableWindowMask
你说窗口也不是它应该的位置。我不知道您希望它在哪里,但您可以在初始化时更改contentRect
参数来更改其位置和大小。制作一个NSRect
,将您的窗口定位和调整到您想要的位置,称之为myRect
之类的方便,然后像这样初始化您的窗口(假设您从上面定义了styleMask
常量):
newWindow = NSWindow(contentRect: myRect, styleMask: styleMask, backing: NSBackingStoreType.Buffered, defer: false)
应该这样做。对于main.swift
的替代版本,请参阅this gist on github。