objective-c - 如何禁用点击进入另一个 NSView 后面的 NSView

标签 objective-c macos cocoa nsview

我有两个 NSViews 在彼此之上。一个 NSView 显示一个包含行的表格。单击一行时,另一个 View 会显示在该 View 的顶部。

现在的问题是,当我单击第二个 View 上的某个区域时,该区域在 NSView 下面有一行,然后它被单击了。我怎样才能阻止它?

谢谢

最佳答案

在您的顶级 View 中,在该 View 中实现 mouseDown: 并且不要调用 nextResponder 或在其中执行任何操作。

- (void)mouseDown:(NSEvent *)theEvent{
    //Do nothing to not propagate the click event to descendant views   
}

我的场景与 OP 完全相同,这对我来说是按预期工作的。感谢我找到的答案 here这让我想到了这个。

关于objective-c - 如何禁用点击进入另一个 NSView 后面的 NSView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11475986/

相关文章:

ios - 自定义 UITableViewCell 不更新

objective-c - 返回数组的基本 Objective C 类

macos - 如何 : Set up a Virtual Host on Apache 2. 4.4 [MAC/*NIX]

javascript - 在 OS X JavaScript for Automation (JXA) 中附加事件监听器

快速创建记录并将记录添加到关系中

cocoa - 如何为 NSWindow 编写自己的调整大小角/句柄?

cocoa - OpenGL 中的形状未正确设置在其他形状后面

ios - AVPlayerLayer 不在 iOS 11 中呈现离线 HLS 视频

objective-c - iTunes Connect 崩溃报告 - UINibDecoderDecodeObjectForValue

iphone - 羽化 NSView 不透明度