我正在使用此代码打开窗口:
[self.window makeKeyAndOrderFront:self];
[self.window setOrderedIndex:0];
但通常它会在其他窗口之下,或者在我最后打开它的其他Space桌面中显示。如何让它始终显示在用户的“前方”?
更新 我找到了之前提出的问题的答案;使窗口显示在其他窗口的顶部: [NSApp activateIgnoringOtherApps:YES];
但是如何将应用程序移动到用户的当前空间?
答案 0 :(得分:112)
将您的应用带到最前面:
[NSApp activateIgnoringOtherApps:YES];
夫特:
NSApp.activateIgnoringOtherApps(true)
斯威夫特3:
NSApp.activate(ignoringOtherApps: true)
答案 1 :(得分:25)
也许你想要:
[self.window setCollectionBehavior: NSWindowCollectionBehaviorCanJoinAllSpaces];
尝试其他收集行为......我发现NSWindowCollectionBehaviorMoveToActiveSpace
在10.5中有点儿错误,但现在可能会更好。
答案 2 :(得分:3)
但是如何将应用程序移动到用户的当前空间?
你没有。空间容纳窗户,而不是应用程序。 (这就是为什么collectionBehavior
属性在NSWindow上,而不是NSApplication。)
答案 3 :(得分:3)
Swift 2的语法似乎有点不同:
NSApplication.sharedApplication().activateIgnoringOtherApps(true)
答案 4 :(得分:3)
NSApp.activate(ignoringOtherApps: true)
答案 5 :(得分:0)
答案 6 :(得分:0)
斯威夫特 5.0 +
NSWindow.orderFrontRegardless()