- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这里又出现了另一个内存泄漏问题。我有一个 NSStatusItem,我正在 try catch 鼠标点击并使用react。以下代码会导致 Instruments 报告泄漏,删除此代码会导致 Instruments 报告无泄漏:
[NSEvent addLocalMonitorForEventsMatchingMask:(NSLeftMouseDown | NSLeftMouseDownMask | NSRightMouseDown | NSRightMouseDownMask)
handler:^NSEvent *(NSEvent *event)
{
if (event.window == self.statusItem.button.window)
{
[self statusItemClicked:self.statusItem.button];
return nil;
}
return event;
}];
关于如何正确实现这一点的建议将不胜感激!谢谢!
最佳答案
addLocalMonitorForEventsMatchingMask:handler:
方法返回监视器对象。您可以将对象传递给 removeMonitor:
当您不再需要它并希望系统停止向它发送事件时。
事件监视器创建一个涉及其自身的保留周期。即使您不保留对监视器的引用,这也会使监视器保持事件状态。此保留周期在 Instruments 中显示为泄漏对象。
如果您想防止泄漏出现在 Instruments 中,请将监视器(由 addLocalMonitor...
返回)存储在某处,例如应用程序委托(delegate)上的实例变量中。
关于objective-c - NSEvent addLocalMonitorForEventsMatchingMask 内存泄漏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53710389/
这里又出现了另一个内存泄漏问题。我有一个 NSStatusItem,我正在 try catch 鼠标点击并使用react。以下代码会导致 Instruments 报告泄漏,删除此代码会导致 Instr
我有以下代码用于监听 View 外的鼠标事件(NSView 的子类)。这很好用,但我不知道如何将 NSEventMasks 通过管道连接在一起。我基本上想在 NSEventMask.LeftMouse
以下代码不会抑制我的应用程序中的鼠标拖动: [NSEvent addLocalMonitorForEventsMatchingMask:NSLeftMouseDraggedMask handler:^
我是一名优秀的程序员,十分优秀!