gpt4 book ai didi

cocoa - 子类化 NSSlider : Need a workaround for missing mouse up events (Cocoa OSX)

转载 作者:行者123 更新时间:2023-12-03 16:08:07 25 4
gpt4 key购买 nike

我正在尝试对 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com