У меня есть подкласс NSView, где я обрабатываю событие -mouseDown:, чтобы получить позицию щелчка на экране.С помощью этой позиции я определил точку, которую буду использовать для рисования прямоугольника на -drawRect: он работает нормально.
НО ... когда я настраиваю wantLayer, все не работает.Когда я получил позицию ввода, я посмотрел, что ось Y имеет увеличение на 20 пунктов, и я не знаю, что происходит ... Кто-нибудь может объяснить?Как мне решить эту проблему?
Симуляция:
Я нажимаю на координату x: 100;у: 100;и drawRect рисует прямоугольник на x: 100;у: 100;Все в порядке, это то, что я хочу.
С setWantsLayer: YES
Я нажимаю на координату x: 100;у: 100;и drawRect рисует прямоугольник на x: 100;у: 120;(или что-то подобное)
Возможно ли использовать CALayers без установки -setWantsLayer в значение YES?Я пытаюсь понять это, но я понятия не имею, что происходит ... Мне нужна ваша помощь.
ОБНОВЛЕНИЕ: Я пытаюсь понять это, и я сделал много тестов сейчас ... Теперь яМожно сказать, что проблема в -mouseDown: из NSView, когда я устанавливаю -setWantsLayer в YES, он больше не работает, как ожидалось ...
У меня в окне есть CustomView, и я создал подклассNSView и установить в качестве класса CustomView.CustomView находится в положении (0, 20).Ориентация координат не переворачивается.
Я полагаю, что когда я установил в NSView, хочет слой -mouseDown: обновить кадр до позиции (0, 0) (или другими словами, он получит кадр NSWindow)вместо (0, 20).Когда это происходит, каждая позиция из -mouseDown: получить увеличение на 20 пунктов по оси Y.Я не знаю, правильно ли то, что я говорю, но это факты, которые я получаю в результате моих тестов.
Кто-то может помочь мне разобраться в этом?