ウィンドウがアクティブなスペース上にあるか判定方法
Spacesでスペースを切り替えた時に、ウィンドウが表示中のSpaceにあるか判定したい場合がある。
この判定には、NSWindowのisOnActiveSpaceを使用する。
isOnActiveSpaceは、Mac OS X 10.6から追加されているため、10.5では使えない。
Mac OS X 10.5では、非公開関数で判定することになる。
サンプルコード
// Mac OS X 10.6 if([self.window isOnActiveSpace]) { NSLog(@"[10.6]Active Space"); } // Mac OS X 10.5 int windowWorkspace; int currentWorkspace; CGSGetWindowWorkspace(_CGSDefaultConnection(), [self.window windowNumber], &windowWorkspace); CGSGetWorkspace(_CGSDefaultConnection(), ¤tWorkspace); if(currentWorkspace == windowWorkspace) { NSLog(@"[10.5]Active Space"); }