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的调用. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |