我必须有两个与视图相关联的子视图。一个是处理右键单击的透明视图,另一个是带有nsimageview子视图的nsview。出于某种原因,右键单击可以在superview的任何部分上工作,但nsimageview中的部分除外。透明视图位于另一个视图的顶部,但右击鼠标事件未触发。
答案 0 :(得分:3)
我终于通过继承图像视图并重写命中测试方法来返回nil来解决它。完整实施如下:
@implementation TTBaseImageView
- (id)initWithFrame:(NSRect)frame
{
self = [super initWithFrame:frame];
if (self) {
// Initialization code here.
}
return self;
}
- (void)drawRect:(NSRect)dirtyRect
{
// Drawing code here.
[super drawRect:dirtyRect];
}
-(BOOL)isFlipped
{
return YES;
}
-(BOOL)acceptsFirstResponder
{
return NO;
}
-(BOOL)acceptsFirstMouse:(NSEvent *)theEvent
{
return NO;
}
-(NSView *)hitTest:(NSPoint)aPoint
{
return nil;
}
@end