如何在另一个NSView下阻止NSView事件?

Qyo*_*per 8 macos cocoa objective-c nsview

这是一个想法:

我有一个包含2个NSView的NSWindow,我们称之为ViewA和ViewB.

ViewA有一个子视图对象列表,每个对象都有自己的跟踪区域集并处理mouseDown事件.ViewB是隐藏视图,显示在ViewA上方.

问题是当ViewB出现时,ViewA仍然会收到mouseDown事件.因此,当我单击ViewB时,ViewB后面的对象会收到mouseDown事件.我想知道在ViewB结束时是否有任何阻止ViewA事件的方法.

我知道我可以从每个对象中删除跟踪区域,但它仍然响应mouseDown事件.

Sau*_*lia -5

您还可以禁用 ViewA 的触摸事件,[ViewA setAcceptsTouchEvents:NO]; 并可以根据您的要求通过YES再次设置再次启用它们。