gpt4 book ai didi

xcode - 没有 @NSApplicationMain 的 OSX 应用程序

转载 作者:行者123 更新时间:2023-11-28 13:07:29 27 4
gpt4 key购买 nike

所以在这里我试图摆脱@NSApplicationMain 以更深入地了解事情是如何工作的。我在这里从 musically_ut 找到了这个不错的答案 OSX application without storyboard or xib files using Swift

但是,它不是很有效!这是奇怪的结果: View 没有链接到窗口,而且,窗口不在它应该在的位置!

图像可以在这里找到http://imgur.com/e4EXnpW

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

有人可以提供一种可靠的方式来启动 OSX 应用程序吗?@NSApplicationMain ?

最佳答案

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

首先,您的 MainMenu.xib 文件中似乎还有一个 Window。单击 MainMenu.xib,当它在 Interface Builder 中打开时,查看左侧 Pane 中的项目。我猜有一个 Window 图标。您想单击它并删除它。

之后,您将只在左下角看到一个窗口。它看起来像一个未附加到窗口的“ View ”,因为您尚未配置窗口的 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 .

关于xcode - 没有 @NSApplicationMain 的 OSX 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32286233/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com