- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试对 NSSlider 进行子类化以创建一个称为滚轮旋钮的控件。基本上我需要的是一个 slider ,它总是从中间开始,当它向左或向右移动时,它会经常发送通知(由可以设置的属性确定),通知其容器其当前值,然后当您放开旋钮,它会回到中间。我希望实现将 slider 返回到中间并停止在 slider 的 mouseUp 事件中发送通知的功能,但似乎由于某种原因,苹果在 slider 上的 mouseDown 事件之后禁用了 MouseUp 事件并处理所有 slider 功能处于较低水平。无论如何我可以恢复 mouseUp 事件吗?如果没有,谁能建议一个合理的解决方法?
最佳答案
每当您注意到父类(super class)的 mouseDragged:
实现或mouseUp:
没有被调用,很可能是因为该类的 mouseDown:
的实现进入跟踪循环。对于许多人来说确实如此NSControl
子类包括NSSlider
.
检测鼠标松开的更好方法是对单元格进行子类化并覆盖适当的跟踪方法。在这种情况下,您可能需要 - (void)stopTracking:(NSPoint)lastPoint at:(NSPoint)stopPoint inView:(NSView *)controlView mouseIsUp:(BOOL)flag
,但是startTracking:
和continueTracking:
变体可能对您想要做的事情也很有用。
关于cocoa - 子类化 NSSlider : Need a workaround for missing mouse up events (Cocoa OSX),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3919905/
我是一名优秀的程序员,十分优秀!