如何把NSWindow带到前面和现在的空间?
我正在使用这个代码来调出我的窗口:
[self.window makeKeyAndOrderFront:self]; [self.window setOrderedIndex:0];
但是经常会在其他窗口下面显示,或者显示在我最后打开的其他空间桌面中。如何使它始终显示在用户的“前面”?
更新我从以前问的问题find答案; 使窗口显示在其他窗口的顶部:[NSApp activateIgnoringOtherApps:YES];
但如何将应用程序移动到用户的当前空间?
要将您的应用程序放在前面:
[NSApp activateIgnoringOtherApps:YES];
迅速:
NSApp.activateIgnoringOtherApps(true)
Swift 3:
NSApp.activate(ignoringOtherApps: true)
也许你想要:
[self.window setCollectionBehavior: NSWindowCollectionBehaviorCanJoinAllSpaces];
尝试其他集合行为…我发现NSWindowCollectionBehaviorMoveToActiveSpace
在10.5中有点bug,但现在可能会更好。
但如何将应用程序移动到用户的当前空间?
你没有。 空间保存窗口,而不是应用程序。 (这就是为什么collectionBehavior
属性在NSWindow上,而不是NSApplication。)
Swift 2的语法看起来有些不同:
NSApplication.sharedApplication().activateIgnoringOtherApps(true)
Swift 3.0
NSApp.activate(忽略其他应用程序:true)
Swift 2.0
NSApp.activateIgnoringOtherApps(true)
有用的编程技巧和黑客