Как я могу навсегда изменить курсор для NSButton?

Я установил курсор для моего NSButton, используя технику, описанную в этом вопросе, и это прекрасно работает изначально. Тем не менее, он ломается, как только окно скрыто, а затем снова отображается (это приложение меню, поэтому окно скрывается каждый раз, когда пользователь щелкает за пределами окна). В этот момент он возвращается к обычному курсору и никогда не вернется к указывающей руке.

Есть ли способ навсегда установить курсор для NSButton?


Обновить:
Я обнаружил, что не столько отображение / скрытие окна, которое убивает курсор при его перемещении в другое приложение, а затем назад. Если я просто показываю / скрываю окно, нажимая на значок меню снова и снова, курсор всегда ведет себя. Но как только я нажимаю на другое приложение и затем нажимаю назад, курсор навсегда ломается (пока я не убью и не перезапущу приложение).

1 ответ

Решение

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

Я обошел проблему, программно форсируя ее, используя либо

[[NSApplication sharedApplication] activateIgnoringOtherApps : YES];

или же

[[NSRunningApplication currentApplication] activateWithOptions:(NSApplicationActivateAllWindows | NSApplicationActivateIgnoringOtherApps)];

как указано в этом вопросе.

Другие вопросы по тегам