Как установить курсор в пользовательском NSView? - PullRequest
2 голосов
/ 01 марта 2011

У меня есть пользовательский вид, который должен установить курсор в зависимости от того, где находится мышь.Я использую [NSCursor set] для установки курсора в обработчике mouseMoved:.Это работает на OS X 10.5, но большую часть времени не на 10.6.Иногда курсор меняется, но обычно это не так.

Проблема в том, что я должен установить курсор в ответ на событие mouseMoved:, я не могу зарегистрировать курсоры или использовать NSTrackingArea иupdateCursor: событие.Я работаю над интерфейсом Cocoa для браузера NetSurf.Движок ожидает события движения мыши от внешнего интерфейса.Если курсор находится над ссылкой или чем-то, что требует другого курсора, движок вызывает функцию из внешнего интерфейса для установки нового курсора.

Есть идеи, как заставить эту работу работать на Snow Leopard?

Ответы [ 2 ]

0 голосов
/ 01 декабря 2015

Просто используйте объект NSCursor с push и pop в mouseEnter и mouseExit

0 голосов
/ 01 декабря 2015

Обычно, вы должны использовать CursorRects, чтобы другие виды не изменяли ваш курсор.Но так как вы не можете этого сделать, вы можете предотвратить их помехи, отключив CursorRects на уровне окна, когда мышь входит в ваш вид.При выходе мыши из вида включите обратные курсоры для окна.

...