Eri*_*ner 11 cocoa objective-c
我有一个NSView包含多个子视图.其中一个子视图是透明的,并且位于顶部.
我需要能够点击这个视图到下面的子视图(以便下面的视图获得第一响应者状态),但所有鼠标事件都卡在顶视图上(alpha是1,因为我在其中绘制内容 - 所以它应该只点击透明区域).
我实际上期望这个工作,因为通常情况下.怎么了?
fig*_*ump 15
这是另一种方法.它不需要创建一个新的窗口对象,并且比上面的findNextSiblingBelowEventLocation:方法更简单(并且可能更有效).
- (NSView *)hitTest:(NSPoint)aPoint
{
// pass-through events that don't hit one of the visible subviews
for (NSView *subView in [self subviews]) {
if (![subView isHidden] && [subView hitTest:aPoint])
return subView;
}
return nil;
}
Run Code Online (Sandbox Code Playgroud)