Почему я не должен использовать прямоугольник курсора на повернутом подклассе NSView? - PullRequest
1 голос
/ 31 июля 2009

Я пишу пользовательский подкласс NSView. У меня есть несколько экземпляров этого класса в моем окне, большинство из которых поворачиваются путем вызова метода setFrameRotation NSView. Мне также нужно изменить курсор, когда над прямоугольной областью этого вида.

Документация для метода addCursorRect NSView содержит следующее косвенное предупреждение:

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

Ну, чёрт побери. Но я бы с радостью использовал их, потому что они гораздо приятнее, чем хаки , которые я бы иначе использовал . И знаешь, что? Я попробовал, и, кажется, работает нормально. Тем не менее, это предупреждение пугает меня; Я волнуюсь, что дьявол придет, чтобы забрать его должное в какой-то момент в будущем. Поэтому мой вопрос таков: кто-нибудь знает , почему прямоугольники курсора не предназначены для использования с повернутыми видами?

Ответы [ 2 ]

1 голос
/ 28 октября 2009

Хотя я сам не пробовал, похоже, что 10.5 добавил новый способ сделать это с Объектами отслеживания области , и у него, похоже, нет ограничения, которое есть в старых курсорах курсора

1 голос
/ 31 июля 2009

Да, это показывает, что сразу после публикации моего вопроса ответ придет ко мне. Похоже, что обнаружение попадания, используемое курсорами курсора, работает только на простых прямоугольниках; поэтому, если представление с прямоугольником курсора поворачивается, фактический используемый прямоугольник курсора будет наименьшим прямоугольником, полностью охватывающим повернутый исходный прямоугольник.

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

...