2012-03-22 2 views
1

У меня есть NSScrollView с NSView, установленным в качестве его вида документа. Я пытаюсь получить событие mousedown в NSScrollView, но NSView продолжает перехватывать его. Есть ли способ остановить это?Disable NSView mousedown

Также есть способ остановить его в одной области зрения, как это делает NSTrackingArea для мыши.

Спасибо заранее,

Бен

ответ

1

Вы можете переопределить -mouseDown: в вашем подвид только вперед событие к следующему ответчику?

Это можно также переопределить -hitTest: супервизора, чтобы возвращать либо сам (когда вы не хотите, чтобы субсведы получали события), либо subview (во всех остальных случаях, когда subview содержит местоположение события).

Что касается вашего последнего вопроса, вы можете сделать это с помощью -hitTest:. Просто верните self, если событие происходит в «зоне исключения» в подпункте.

Если вы идете по этому маршруту, не забудьте обратить внимание на используемую систему координат в любой момент времени и конвертировать между ними по мере необходимости.

+0

Perfect - thankyou – BenJacob

+0

Конечно, рад помочь. –

+0

Извините, что вернулись к этому, но есть ли способ получить нормальное поведение, если местоположение mousedown находится за пределами границ, которые вы указали? т.е. возврат какого-либо вида обычно возвращается? – BenJacob