Search code examples
objective-ccocoaosx-snow-leopard

Obtaining information about the application that owns the active window


I am sure it's something easy, and I am not looking to the right documentation.

I need to get information about the application that handles the active window. The code I need to write needs to intercept some custom gestures, and return to the application an event that depends from the application itself.


Solution

  • There's the NSWorkspace class from which you can get a dictionary with information about the activeApplication. That application usually owns the "key" window.

    Edit: For apps targeting 10.6 or later, activeApplication is deprecated. Here's the new way to go:

    NSRunningApplication *activeApplication = nil;
    for (NSRunningApplication *app in [[NSWorkspace sharedWorkspace] runningApplications]) {
        if (app.active) {
            activeApplication = app;
            break;
        }
    }