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的调用.

相关文章

软件简介:蓝湖辅助工具,减少移动端开发中控件属性的复制和粘...
现实生活中,我们听到的声音都是时间连续的,我们称为这种信...
前言最近在B站上看到一个漂亮的仙女姐姐跳舞视频,循环看了亿...
【Android App】实战项目之仿抖音的短视频分享App(附源码和...
前言这一篇博客应该是我花时间最多的一次了,从2022年1月底至...
因为我既对接过session、cookie,也对接过JWT,今年因为工作...