我遇到过一个无法访问应用程序主窗口的问题,
因为它返回零.
因为它返回零.
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的调用.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。