问题标签 [nstrackingarea]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
137 浏览

objective-c - NSTrackingArea 注册 mouseMove 通过重叠窗口,当它不应该

我在 NSView 中创建了一个跟踪区域,它应该只在窗口是关键窗口时跟踪鼠标移动事件。但是,我注意到有时,当窗口与另一个当前为键的窗口重叠时,不再是键窗口的背景窗口仍会收到 mouseMoved: 事件。

这是我在 NSView 子类中的代码:

我添加NSLog(@"is window key %d", [[self window] isKeyWindow])-mouseMoved:它,它清楚地表明背景窗口不是关键,尽管它仍然接收鼠标移动事件。

在我单击背景窗口使其成为键,然后再次单击前景窗口使其成为键后,此工件消失了。然后后台窗口停止接收鼠标移动事件。

这是 NSTrackingArea 的错误,有什么办法可以解决吗?

更新:我注意到此错误仅在后台窗口以编程方式调整大小时出现,而前台窗口具有键盘焦点。

0 投票
0 回答
54 浏览

swift - 如何在 OutlineView 单元格中显示鼠标悬停按钮

我有一个大纲视图,我能够实现鼠标悬停功能并使用鼠标悬停选择行NSTrackingArea。我在每个单元格的末尾都有按钮。

  1. 我想在开始时隐藏所有按钮。
  2. 在鼠标悬停时,按钮应该与选定的列单元格一起启用。

IMG

0 投票
1 回答
147 浏览

swift - Swift 5 - Mac OS - NSTrackingArea 重叠视图

目前,当涉及到按钮(NSButton)时,我有一个小问题,这些按钮在这些按钮上方有一个跟踪区域和视图(NSView覆盖),这是我的设置:

自定义按钮:

这个按钮类的一个实例是非常基本NSView的。

当我将鼠标悬停在按钮上时,光标会正确更改。

当我单击按钮时,按钮NSView上方会打开一个新的覆盖()...

这是问题开始的地方:

当我将鼠标悬停在放置按钮的覆盖层上时,光标仍然会改变......

我不知道 aNSTrackingArea正在浏览所有视图..

我该如何解决这个问题?

我可以在 overlay( NSView) 上设置任何属性以某种方式禁用NSTrackingArea按钮上的 吗?

谢谢!!

0 投票
0 回答
29 浏览

objective-c - 添加跟踪区域时向实例发送无法识别的选择器

我在 NSPanel 中有一个 NSImage,我想在其中获取鼠标 X、Y 坐标。

如果我将 NSImage 层内容设置为layer.content =splitNSImage(其中 splitNSImage 是从 URL 创建的 NSImage)然后

我在最后一行收到运行时错误“Thread 1:”-[NSImage addTrackingArea:]: Unrecognized selector sent to instance 0x600003335400”。

如果我使用 use[NSPanel contentView] 而不是[layer contents]它可以正常工作,但在面板而不是 imageView 中提供鼠标坐标(在 MouseMoved 事件中)

0 投票
0 回答
29 浏览

cocoa - 将鼠标拖到与 NSWindow 边框对齐的 NSTrackingArea 外时,光标变为调整大小模式

我有一个子类NSView,它与窗口内容区域的边缘对齐,即视图占据了窗口的整个区域。

在该自定义内部,NSView我安装了一个NSTrackingArea也与视图边缘对齐的,以跟踪鼠标移动和进入/退出事件。

当我在视图内单击鼠标并在窗口外拖动时,一旦鼠标与窗口边框相交,光标就会变成调整大小的形状(就像我将鼠标悬停在窗口边框上一样)并保持该形状,无论我拖动到哪里 -窗内或窗外 - 直到我松开鼠标按钮。

我在许多应用程序中也观察到了这个错误,甚至在 Apple 自己的应用程序中也是如此。例如,在 Safari 中,如果您单击页面的背景并拖动到窗口外,则光标会停留在调整大小模式。

的选项标志NSTrackingArea似乎不会影响该错误。如果我不添加NSTrackingArea.

这真的很烦人,有解决方法吗?

这是我的代码: