macos – NSWindow返回nil(NSApplication)

我遇到过一个无法访问应用程序主窗口的问题,
因为它返回零.

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);

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

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

NSApp.activateIgnoringOtherApps(true)

在我的情况下,我还需要一个计时器来延迟我对mainWindow的调用.

相关文章
相关标签/搜索