Geo*_*rge 5 macos cocoa mission-control
我创建了一个窗口使用-[NSWindow setCollectionBehavior:NSWindowCollectionBehaviorCanJoinAllSpaces].
它只做我想要的一半,但是:当我切换空格时,窗口也会切换空格(如预期的那样),但我的窗口移动到该空间中所有其他窗口后面的后面.这特别糟糕,因为我的应用程序处于活动状态,但其窗口低于所有其他应用程序的窗口.我尝试将级别更改为NSFloatingWindowLevel,这确实保持在顶部,但是当切换空格时它会丢失键状态(焦点).
我尝试NSWindowCollectionBehaviorMoveToActiveSpace
了收集行为,但它绝对不是我想要的.
有希望吗?我知道几乎没有其他与Spaces相关的API.
空间是一种痛苦。我的解决方案是注册更改通知,如下所示:
[[[NSWorkspace sharedWorkspace] notificationCenter] addObserver:self
selector:@selector(activeSpaceDidChange:)
name:NSWorkspaceActiveSpaceDidChangeNotification
object:nil];
Run Code Online (Sandbox Code Playgroud)
然后在我的WindowController
课堂上:
- (void) activeSpaceDidChange:(NSNotification *)aNotification {
if ([NSApp isActive]) [[self window] orderFront:self];
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1823 次 |
最近记录: |