0
我打了一下墙,真的很感谢一些帮助。NSSlider上的mouseDown事件
我有一个NSSlider,我用它来控制QTMovie的慢跑速度。
我希望根据滑块值回放视频的速率。这很容易做到。
问题是我想让NSSlider在用户的事件“mouseUp”完成时重置为'0'。 我似乎无法得到此事件的工作,所以我已经划分了NSSlider并实现了mousedown & mouseup方法,并且将一个委托添加到NSSlider子类并将其连接到我的应用程序的控制器。
它的工作方式,但滑块上有一个巨大的延迟 - 它滑动良好,但视频速率不会改变,只有当我'mouseUp' - 基本上它似乎是调用mouseDown的MouseUp。
我希望有一些是有道理的。
希望有人在那里可以帮助我,
干杯,
亚当
enter code here
我NSSlider子类.m文件:
@implementation TimeScrubberSlider
@synthesize delegate;
- (void)mouseDown:(NSEvent *)theEvent {
// dispatch_queue_t myQueue = dispatch_queue_create("com.mycompany.myqueue", 0);
// dispatch_async(myQueue, ^{
NSLog(@"mouseDown");
[super mouseDown:theEvent];
if ([delegate respondsToSelector: @selector(doScrubTime:)])
{
[delegate doScrubTime:nil];
}
[super mouseDown:theEvent];
//);
// dispatch_release(myQueue);
}
- (void) mouseUp: (NSEvent*) theEvent
{
NSLog(@"mouseUp TimeScrubber");
[super mouseUp:theEvent];
[self setDoubleValue:0];
if ([delegate respondsToSelector: @selector(doScrubTime:)])
{
[delegate doScrubTime:nil];
}
[super mouseUp:theEvent];
}