Да мат точно так же.
м приложении Какао я хочу выделить любое активное окно и затемнить остальные окна. что-то вродефокус окна применение. Ниже блок мой код.
NSNotificationCenter* center = [[NSWorkspace sharedWorkspace] notificationCenter];
[center addObserver:self selector:@selector(newApplicationDidActive:) name:NSWorkspaceDidActivateApplicationNotification object:nil];
- (void)newApplicationDidActive:(NSNotification *)notification {
NSDictionary* userInfo = notification.userInfo;
NSLog(@"did Active %@", [userInfo objectForKey:NSWorkspaceApplicationKey ]
if ([[NSUserDefaults standardUserDefaults] boolForKey:kUDKeyWindowFocus]) {
NSLog(@"window focus");
[[FocusWindow defaultHandler].window orderWindow:NSWindowAbove relativeTo:0];
}
}
Обновление: добавленный ниже код частично работает, но не точный, некоторые могут предложить какие-либо идеи или взгляды.
NSPoint mouseLocation = [NSEvent mouseLocation];
NSInteger windowNumber = [NSWindow windowNumberAtPoint:mouseLocation belowWindowWithWindowNumber:0];
NSLog(@"windowNumber %lu",windowNumber);
[focusWindowController.window orderWindow:NSWindowBelow relativeTo:windowNumber];
[app activateWithOptions:NSApplicationActivateIgnoringOtherApps];
Вместо
[[FocusWindow defaultHandler].window orderWindow:NSWindowAbove relativeTo:0];
В первом блоке windowNumberAtPoint: underWindowWithWindowNumber, который дает номер переднего окна с тем, что я упорядочиваю свое затемняющее окно ниже orderWindow: по отношению к переднему окну.