我遇到了一个问题,我无法访问我的应用程序的主窗口,因为它返回0。
let window = NSApplication.sharedApplication().mainWindow我发现了类似的问题:
如何从其他类(NSViewController的子类)获取主窗口(App )?
但做:
let window = (NSApplication.sharedApplication() as! NSArray).objectAtIndex(0)似乎也没用。
我一定要在故事板上乱搞吗?
提前谢谢。
更新:
我实际上是想把目标-C的东西移植过来。
NSWindow *mainWindow = [[[NSApplication sharedApplication] windows] objectAtIndex:0];
NSLog(@"%@", mainWindow.contentViewController);当将viewDidLoad()块放入NSViewController中时,这会返回一个适当的值,因此我猜想NSApplication.sharedApplication()有问题。
发布于 2016-05-09 13:26:39
如果主应用程序窗口在macOS上没有活动,它也可以返回零。例如,我在制作拖放文件上传器时遇到了这个问题。如果窗口不在前面(操作系统上),它将返回零。下面的代码行将激活您的应用程序(带到前面)
NSApp.activateIgnoringOtherApps(true)在我的情况下,我还需要一个计时器来延迟mainWindow的调用。
发布于 2016-05-04 09:28:16
你可以这样做:
func applicationDidBecomeActive(notification: NSNotification) {
NSApplication.sharedApplication().mainWindow?.movable = false
}发布于 2015-07-17 03:39:22
https://stackoverflow.com/questions/31467531
复制相似问题