gpt4 book ai didi

macos - NSWindow 返回 nil (NSApplication)

转载 作者:搜寻专家 更新时间:2023-10-30 22:08:55 28 4
gpt4 key购买 nike

我遇到了无法访问应用程序主窗口的问题,因为它返回 nil

let window = NSApplication.sharedApplication().mainWindow

我发现了类似的问题:

How to get Main Window (App Delegate) from other class (subclass of NSViewController)?

但是在做:

let window = (NSApplication.sharedApplication() as! NSArray).objectAtIndex(0)

好像也没用。

我必须在 Storyboard 中乱搞吗?

提前致谢。

更新:

我实际上是在尝试从 Objective-C 移植一些东西。

    NSWindow *mainWindow = [[[NSApplication sharedApplication] windows] objectAtIndex:0];
NSLog(@"%@", mainWindow.contentViewController);

当放入 NSViewControllerviewDidLoad() block 时,这会返回一个正确的值,所以我猜测 NSApplication 有问题。 sharedApplication().

最佳答案

如果主应用程序窗口在 macOS 上未激活,它也可以返回 nil。例如,我在制作拖放文件 uploader 时遇到了这个问题。如果窗口不在前面(在操作系统上),它将返回 nil。以下代码行将激活您的应用程序(置于最前面)

NSApp.activateIgnoringOtherApps(true)

在我的例子中,我还需要一个计时器来延迟对 mainWindow 的调用。

关于macos - NSWindow 返回 nil (NSApplication),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31467531/

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