Общесистемный AXUIElement, получение целевого приложения, ошибка cannotComplete - PullRequest
0 голосов
/ 16 июня 2020

Что я пытаюсь сделать, так это получить текущий сфокусированный контроль над сфокусированным на текущий момент приложением, потому что я хочу знать его положение на экране, даже если мое приложение находится в фоновом режиме. изолированное приложение, выпущенное в Ma c App Store.

Я добавил его в список System Preferences -> Security & Privacy -> Accessibility.

Теперь это мой код:

var resultApp: AnyObject?

let element = AXUIElementCreateSystemWide()
var error = AXUIElementCopyAttributeValue(element, kAXFocusedApplicationAttribute as CFString, &resultApp)

if let app = resultApp {
    var resultName: AnyObject?
    error = AXUIElementCopyAttributeValue(app as! AXUIElement, kAXFocusedUIElementAttribute as CFString, &resultName)
    print(resultName)
}

Но как только я звоню AXUIElementCopyAttributeValue с kAXFocusedApplicationAttribute, я получаю CannotComplete ошибку.

Я предполагаю, что это скорее проблема с разрешением, чем ошибка кода.

Каковы условия чтобы иметь возможность использовать этот API?

...