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];
}