Могу ли я изменить текущий курсор из неактивного приложения?

У меня есть служебное приложение для Mac, которое работает в фоновом режиме (LSUIElement включено). При некоторых условиях это приложение отображает окно меню с несколькими кнопками. Проблема в том, что когда я навожу курсор на это окно, курсор мыши по-прежнему ведет себя в соответствии с приложением под ним — когда под меню есть текст, курсор принимает форму вставки «I beam».

Очевидно, я бы предпочел обычную стрелку-указатель. Я погрузился в NSTrackingArea и друзей после небольшого взлома, я могу обнаружить события мыши-ввода и мыши-выхода. Но когда я пытаюсь изменить текущий курсор, используя NSCursor при вводе мыши, ничего не происходит. Похоже, машина отказывается менять курсор из неактивного приложения, потому что, когда я активирую приложение до события ввода мыши, курсор меняется.

Я не хочу переключать активное приложение только для того, чтобы изменить курсор. Есть ли способ возиться с курсором из неактивного приложения?

P.S. Та же проблема с какао-dev: один, два .


person zoul    schedule 04.04.2011    source источник
comment
Я тоже ищу решение этого. Вы когда-нибудь находили что-нибудь?   -  person zadam    schedule 21.06.2011
comment
@zadam: Нет. К счастью, мы все равно изменили концепцию приложения, чтобы избавиться от этого требования.   -  person zoul    schedule 21.06.2011
comment
Та же проблема здесь. Как ни странно, до того, как я преобразовал свое приложение из Carbon (Windows HI) в Cocoa, я мог успешно изменить курсор с помощью NSCursor.   -  person Thomas Tempelmann    schedule 08.02.2013


Ответы (1)


Боюсь, это невозможно из-за ограничений OS X.

person mirap    schedule 26.10.2015