2017-01-26 1 views
1

Я ищу способ определения местоположения и размера окна, которое не является частью моего приложения в macOS, используя Swift (предпочтительно) или Objective-C для запрограммировать оверлей/hud. Возможно ли прочитать список всех процессов и начать с него или есть что-то похожее на функцию getWindowHandle() в api Windows?Определить положение окна на macOS с помощью swift (или Objective-C)

ответ

0

Взгляните на CGWindowListCopyWindowInfo:

import CoreGraphics 

if let windowList = CGWindowListCopyWindowInfo([.optionAll], kCGNullWindowID) as? [[String: AnyObject]] { 
    for window in windowList { 
     let number = window[kCGWindowNumber as String]! 
     let bounds = CGRect(dictionaryRepresentation: window[kCGWindowBounds as String] as! CFDictionary)! 

     let name = window[kCGWindowName as String] as? String ?? "" 
     print("number = \(number), name = \(name), bounds = \(bounds)") 
    } 
} else { 
    print("Can't get window list") 
} 

windowList является массивом CFDictionary, который выше код мостиком в [String: AnyObject] для легкой работы в Swift. Вот required и optional ключи для словарей. Все ключи определены как CFString, вы должны свести их в String.

Смежные вопросы