问题标签 [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.
objective-c - NSTrackingArea 注册 mouseMove 通过重叠窗口,当它不应该
我在 NSView 中创建了一个跟踪区域,它应该只在窗口是关键窗口时跟踪鼠标移动事件。但是,我注意到有时,当窗口与另一个当前为键的窗口重叠时,不再是键窗口的背景窗口仍会收到 mouseMoved: 事件。
这是我在 NSView 子类中的代码:
我添加NSLog(@"is window key %d", [[self window] isKeyWindow])
了-mouseMoved:
它,它清楚地表明背景窗口不是关键,尽管它仍然接收鼠标移动事件。
在我单击背景窗口使其成为键,然后再次单击前景窗口使其成为键后,此工件消失了。然后后台窗口停止接收鼠标移动事件。
这是 NSTrackingArea 的错误,有什么办法可以解决吗?
更新:我注意到此错误仅在后台窗口以编程方式调整大小时出现,而前台窗口具有键盘焦点。
swift - Swift 5 - Mac OS - NSTrackingArea 重叠视图
目前,当涉及到按钮(NSButton
)时,我有一个小问题,这些按钮在这些按钮上方有一个跟踪区域和视图(NSView
覆盖),这是我的设置:
自定义按钮:
这个按钮类的一个实例是非常基本NSView
的。
当我将鼠标悬停在按钮上时,光标会正确更改。
当我单击按钮时,按钮NSView
上方会打开一个新的覆盖()...
这是问题开始的地方:
当我将鼠标悬停在放置按钮的覆盖层上时,光标仍然会改变......
我不知道 aNSTrackingArea
正在浏览所有视图..
我该如何解决这个问题?
我可以在 overlay( NSView
) 上设置任何属性以某种方式禁用NSTrackingArea
按钮上的 吗?
谢谢!!
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 事件中)
cocoa - 将鼠标拖到与 NSWindow 边框对齐的 NSTrackingArea 外时,光标变为调整大小模式
我有一个子类NSView
,它与窗口内容区域的边缘对齐,即视图占据了窗口的整个区域。
在该自定义内部,NSView
我安装了一个NSTrackingArea
也与视图边缘对齐的,以跟踪鼠标移动和进入/退出事件。
当我在视图内单击鼠标并在窗口外拖动时,一旦鼠标与窗口边框相交,光标就会变成调整大小的形状(就像我将鼠标悬停在窗口边框上一样)并保持该形状,无论我拖动到哪里 -窗内或窗外 - 直到我松开鼠标按钮。
我在许多应用程序中也观察到了这个错误,甚至在 Apple 自己的应用程序中也是如此。例如,在 Safari 中,如果您单击页面的背景并拖动到窗口外,则光标会停留在调整大小模式。
的选项标志NSTrackingArea
似乎不会影响该错误。如果我不添加NSTrackingArea
.
这真的很烦人,有解决方法吗?
这是我的代码: