Я получаю события от кликов с глобальным монитором в macOS.NSEvent дает мне координаты, но мне нужно получить UIElement.
Используя API специальных возможностей, я могу получить сфокусированный элемент, но мне нужен элемент, по которому щелкают, который совершенно другой.Например, если я щелкаю текстовую область, я получаю элемент AXTextArea.Если я щелкну на панели задач приложения, сфокусированный элемент останется AXTextArea, что имеет смысл.Мне нужен элемент, связанный с событием мыши.
Я нашел в сети метод с именем accessibilityHitTest, который должен извлекать UIElement под данным NSPoint.Я всегда получаю нулевое значение, поэтому я не уверен, что это должно работать именно так.
Может быть, есть другая функция, которая извлекает UIElement из заданной точки на экране?
Вот что я делаюпробовал:
NSEvent *event; // My event received from global monitoring
id clickedObject = [self accessibilityHitTest:event.locationInWindow];
//This give me an error because self is not a NSWindow.
NSEvent *event; // My event received from global monitoring
id clickedObject =
[[NSApp keyWindow] accessibilityHitTest:event.locationInWindow];
//This give me null at every click.
Может быть, это невозможно, но я просто могу получить UIElement под моим щелчком мыши, а не сфокусированный UIElement.