我有两个NSViews彼此叠加。一个NSView呈现一个包含行的表。点击一行后,另一个视图显示在该视图的顶部。
现在问题是当我点击第二个视图上的某个区域时,NSView下面有一行,然后点击它。我怎么能阻止它?
谢谢
答案 0 :(得分:7)
在您的顶级视图中,在该视图中实现mouseDown:
,不要调用nextResponder或在其中执行任何操作。
- (void)mouseDown:(NSEvent *)theEvent{
//Do nothing to not propagate the click event to descendant views
}
我有与OP相同的场景,这对我有用。相信我找到here的答案让我想到了这一点。
答案 1 :(得分:0)
在视图中子类并实现acceptsFirstMouse
,返回YES
。另外,在该视图中将acceptsTouchEvents
设置为YES
。
答案 2 :(得分:-8)
您可以在顶部视图中显示触摸和鼠标事件:
topView.acceptsTouchEvents = YES;
topView.acceptsFirstMouse = YES;
编辑:评论是正确的acceptsFirstMouse
不是属性,必须在子类中更新。