美文网首页IOS开发
【Mac os 开发】激活指定窗口

【Mac os 开发】激活指定窗口

作者: name007 | 来源:发表于2021-01-08 17:56 被阅读0次

OC代码

NSArray *windows = (__bridge_transfer NSArray*) CGWindowListCopyWindowInfo( kCGWindowListOptionOnScreenOnly, kCGNullWindowID);
    for(NSDictionary* winDict in windows)
    {
        NSString *appName = [winDict valueForKey:(__bridge NSString*)kCGWindowOwnerName];
        pid_t pid = (pid_t)[[winDict valueForKey:(__bridge NSString*)kCGWindowOwnerPID] intValue];
        
        if ([appName isEqualTo:@"QYHotReload"]) {
            NSRunningApplication* app = [NSRunningApplication runningApplicationWithProcessIdentifier:pid];
            [app activateWithOptions:NSApplicationActivateIgnoringOtherApps];
        }
    } 

swift 代码

let options = CGWindowListOption(arrayLiteral: CGWindowListOption.excludeDesktopElements, CGWindowListOption.optionOnScreenOnly)
    let windowListInfo = CGWindowListCopyWindowInfo(options, CGWindowID(0))
    guard let infoList = windowListInfo as NSArray? as? [[String: AnyObject]] else { return }

    if let window = infoList.first(where: { ($0["kCGWindowOwnerName"] as? String) == windowOwnerName}), let pid = window["kCGWindowOwnerPID"] as? Int32 {
        let app = NSRunningApplication(processIdentifier: pid)
        app?.activate(options: .activateIgnoringOtherApps)
    }

相关文章

网友评论

    本文标题:【Mac os 开发】激活指定窗口

    本文链接:https://www.haomeiwen.com/subject/kzvfaktx.html