У меня есть несколько представлений класса MyView
(подкласс NSView
) внутри другого NSView
.MyView
реализует -mouseEntered:
, -mouseExited:
, -mouseDown:
, -mouseDragged:
и -mouseUp:
.
Почти всегда, когда MyView
получает событие нажатия мыши, все последующие события перетаскивания мышью принимаются тем же MyView
до следующего события мыши.Даже если курсор выходит за пределы MyView
.Это ожидаемое поведение.
Иногда MyView
получит событие нажатия мыши, но будет получать только перетаскиваемые мышью и события мыши, пока курсор остается внутри MyView
.Если курсор перемещается на другой MyView
, тогда этот MyView
начинает получать перетаскиваемые мышью события (без предварительного получения события мыши) и может получать последующее событие мыши.
В случае, если это имеет значение, событие нажатия мыши создает FooView
(подкласс NSView
) поверх MyView
, а перетаскиваемые мышью события изменяют размер кадра FooView
,Это может быть связано, так как я смог воспроизвести проблему только после того, как один из этих FooView
был создан.FooView
не реализует ни один из методов события мыши.
Я уже давно этим занимаюсь и не смог ни преднамеренно воспроизвести проблему, ни воссоздать проблему в простом примере.Я был бы рад ответить на любые вопросы о моем коде, я просто не уверен, что будет иметь отношение к публикации.