我必须有两个与视图关联的子视图。一个是处理右键单击的透明视图,另一个是带有 nsimageview 子视图的 nsview。出于某种原因,右键单击适用于除了 nsimageview 中的部分之外的超级视图的任何部分。透明视图位于另一个视图之上,但未触发鼠标右键事件。
问问题
611 次
1 回答
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
于 2013-09-12T05:02:53.293 回答