相关疑难解决方法(0)

如何使透明的NSView子类处理鼠标事件?

问题

我透明NSView透明NSWindow.视图的drawRect:方法在视图上绘制一些内容(NSImages,NSBezierPaths和NSStrings),但使其中的一部分透明.

单击已绘制的视图区域将调用常用的鼠标事件处理方法(mouseDown:mouseUp:).

单击透明区域可以聚焦透明窗口后面的任何窗口.

我想让透明区域的某些部分可以点击,以便在我的视图上绘制的元素之间意外点击不会导致窗口失去焦点.


解决方案已经尝试

  • 重写NSViewhitTest:方法.发现hitTest:仅在单击视图的非透明区域时调用.
  • 重写NSViewopaqueAncestor方法.发现在单击视图的任何部分时未调用此项.
  • [NSColor clearColor]在该drawRect:方法中填充透明区域的部分,并且具有几乎但不是非常透明的颜色.这没有效果.
  • 通过NSTrackingArea课程实验.这似乎只会增加支持mouseEntered:,mouseExited:,mouseMoved:,和cursorUpdate:方法, mouseUp:mouseDown:.

cocoa

12
推荐指数
2
解决办法
8096
查看次数

通过透明窗口点击

我有一个全屏透明窗口.当用户点击它时,我希望将点击发送到窗口下面的内容.我该怎么办?

macos cocoa click nswindow objective-c-2.0

1
推荐指数
1
解决办法
2226
查看次数

标签 统计

cocoa ×2

click ×1

macos ×1

nswindow ×1

objective-c-2.0 ×1