In my Cocoa app I want to Highlight which ever the window is active and dim the rest windows. something like focus window application.
Below block is my code.
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];
}
}
Update :
Added below code partially working but not accurate can some suggest any ideas or views.
NSPoint mouseLocation = [NSEvent mouseLocation];
NSInteger windowNumber = [NSWindow windowNumberAtPoint:mouseLocation belowWindowWithWindowNumber:0];
NSLog(@"windowNumber %lu",windowNumber);
[focusWindowController.window orderWindow:NSWindowBelow relativeTo:windowNumber];
[app activateWithOptions:NSApplicationActivateIgnoringOtherApps];
Instead of
[[FocusWindow defaultHandler].window orderWindow:NSWindowAbove relativeTo:0];
In First Block windowNumberAtPoint:belowWindowWithWindowNumber which gives Frontmost window number with that i am ordering my dimming window below orderWindow:relativeTo the Frontmost window.
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…