Получение события мыши внизу на суперпредставлении - PullRequest
0 голосов
/ 21 сентября 2011

У меня есть NSScrollView, а его вид документа - это NSView подпредставление под названием MasterPage.На MasterPage у меня есть куча (в зависимости от ввода пользователя) подпредставлений (из класса с именем Page). Они выложены в виде сетки.Я пытаюсь захватить NSPoint щелчка мышью на MasterPage.Это работает там, где нет подпредставлений, но если точка щелчка находится в области подпредставления, тогда суперпредставление не регистрирует его.Есть ли способ сделать это?Я надеюсь, что в этом есть смысл.

Красная область регистрирует щелчок мыши в файле .m суперпредставления.Четыре подпредставления не.

The red area registers a mouse click in the superview's .m file. The four subviews do not.

1 Ответ

1 голос
/ 22 сентября 2011

В вашем классе MasterPage вы можете переопределить метод NSView's -hitTest: и вернуть ему self вместо одного из Page подпредставлений. См. Руководство по обработке событий: Путь событий мыши и планшета .

В этом примере проекта, http://www.markdouma.com/developer/SubviewSuperview.zip, вы можете наблюдать за регистрацией вызовов, чтобы увидеть, что NSView получает события. Если вы удержите нажатой клавишу Alt / Option и нажмете, белый вид переопределит -hitTest: и вернется сам, не давая серым видам получить событие.

enter image description here

...