Xcode 没有@NSApplicationMain的OSX应用程序

Xcode 没有@NSApplicationMain的OSX应用程序,xcode,macos,swift,Xcode,Macos,Swift,所以在这里,我试图摆脱@NSApplicationMain,以便更深入地了解事物的工作原理。 我从音乐上找到了这个很好的答案 然而,它不太管用! 这是一个奇怪的结果:视图没有链接到窗口,而且窗口不是它应该在的位置 图片可以在这里找到 我在不使用故事板的情况下启动了xcode项目,然后创建了main.swift、AppDelegate.swift、ViewController.swift,并粘贴了guy提供的每个内容。但是它不起作用 有没有人能提供一种可靠的方式来启动OSX应用程序而不必担心 @N

所以在这里,我试图摆脱@NSApplicationMain,以便更深入地了解事物的工作原理。 我从音乐上找到了这个很好的答案

然而,它不太管用! 这是一个奇怪的结果:视图没有链接到窗口,而且窗口不是它应该在的位置

图片可以在这里找到

我在不使用故事板的情况下启动了xcode项目,然后创建了main.swift、AppDelegate.swift、ViewController.swift,并粘贴了guy提供的每个内容。但是它不起作用

有没有人能提供一种可靠的方式来启动OSX应用程序而不必担心
@NapplicationMain?

看起来您的代码实际上正在工作,但您还需要做一些其他事情才能使其按您希望的方式工作。您有一个窗口正在从Interface Builder中的
main menu.xib
加载,即标题栏中带有“911”的窗口。您已经有了第二个以编程方式创建的窗口。这是屏幕左下角的窗口

首先,看起来在
main menu.xib
文件中仍然有一个
窗口。单击
main menu.xib
,当它在Interface Builder中打开时,查看左侧窗格中的项目。我猜有一个
窗口
图标。你想点击并删除它

之后,您将在左下角有一个窗口。它看起来像一个未附加到窗口的“视图”,因为您尚未配置窗口的
styleMask
属性。您可能需要一个如下所示的
styleMask

let styleMask = NSTitledWindowMask
              | NSClosableWindowMask
              | NSMiniaturizableWindowMask
              | NSResizableWindowMask
你说窗户也不是它应该在的地方。我不知道您希望它在哪里,但是您可以在初始化它时通过更改
contentRect
参数来更改它的位置和大小。制作一个
NSRect
,在需要的位置定位和调整窗口大小,将其称为像
myRect
这样方便的名称,然后像这样初始化窗口(假设您从上面定义了
styleMask
常量):


应该这样做。有关
main.swift
的替代版本,请参阅。

非常感谢您让我理解!感激
newWindow = NSWindow(contentRect: myRect, styleMask: styleMask, backing: NSBackingStoreType.Buffered, defer: false)