macos - NSView subview 右键单击无法在 nsimageview 上工作

标签 macos cocoa nsview right-click nsimageview

我必须有两个与一个 View 关联的 subview 。一个是处理右键单击的透明 View ,另一个是带有 nsimageview subview 的 nsview。由于某种原因,右键单击可以作用于 super View 的任何部分,除了 nsimageview 内的部分。透明 View 位于另一个 View 之上,但鼠标右键按下事件未触发。

最佳答案

我最终通过子类化 ImageView 并覆盖 HitTest 方法以返回 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

关于macos - NSView subview 右键单击无法在 nsimageview 上工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18104039/

相关文章:

git - 不使用 .gitconfig 设置 Git 用户名和电子邮件?

Cocoa 查看自动缩放内容

swift - 在 cocoa 应用程序中关闭单击时显示和隐藏窗口而不是终止应用程序

java - Mac OS X 10.5 上的 SWT 和 Java WebStart

cocoa - 嵌入 NSSscrollView 的自定义 NSView

python - 尝试使用 Pyglet - 这个错误是什么意思?

swift - NSUserUnixTask 悄悄忽略脚本

python - 如何在 Mac OS 10.8 上安装 MySql-python-1.2.3

nsview - 如何配置 NSWindowController、NSViewController 和 NSView

cocoa - 强制 View 在 cocoa 中绘制