加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

macos – NSWindow返回nil(NSApplication)

发布时间:2020-12-14 05:38:04 所属栏目:百科 来源:网络整理
导读:我遇到过一个无法访问应用程序主窗口的问题, 因为它返回零. let window = NSApplication.sharedApplication().mainWindow 我发现了类似的问题: How to get Main Window (App Delegate) from other class (subclass of NSViewController)? 但做: let window
我遇到过一个无法访问应用程序主窗口的问题,
因为它返回零.
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的调用.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读