нестандартная зона слежения в какао - PullRequest
1 голос
/ 16 декабря 2010

Как создать произвольную область отслеживания в какао?В какао я мог только найти прямоугольники в качестве области отслеживания.

Carbon предоставил эту функцию через HIViewNewTrackingArea, через который любой HIShapeRef мог быть зарегистрирован в качестве области отслеживания. У нас есть что-то похожее на это в какао?

У меня сложная форма, в которой я хочу изменить курсоры мыши в разных регионах.

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

Не могли бы вы предложить какой-либо другой способ сделать это.

Было бы проще, если бы в какао был похожий API, например HIViewNewTrackingArea.

Спасибо.

1 Ответ

3 голосов
/ 16 декабря 2010

Области отслеживания являются только прямоугольными в рамках Какао.Вы можете покрыть всю свою область, затем создать NSBezierPath (который вы держите, но не обводите и не заливаете) и спрашивать его, находится ли точка внутри него, с помощью -containsPoint:отслеживание в то время как путь обеспечивает ваш собственный механизм обнаружения попаданий.

...