나는 약간의 벽을 치고 정말로 도움이된다.NSSlider의 mouseDown 이벤트
QTMovie의 조그 속도를 제어하는 데 사용하는 NSSlider가 있습니다.
슬라이더 값에 따라 비디오 재생 속도를 원합니다. 이것은하기 쉽습니다.
문제는 사용자의 이벤트 "mouseUp"이 완료되면 NSSlider를 '0'으로 재설정하려고합니다. 이 이벤트가 작동하지 않는 것 같습니다. 따라서 NSSlider를 서브 클래 싱하고 mousedown & mouseup 메소드를 구현하고 NSSlider 서브 클래스에 대리자를 추가하고이를 내 응용 프로그램의 컨트롤러에 연결했습니다.
일종의 작품이지만 슬라이더에 막대한 지연이 있습니다. 슬라이드가 잘되지만 비디오 속도는 변경되지 않고 'mouseUp'일 때만 변경됩니다. 기본적으로 mouseDown이 마우스 업.
그 중 일부는 의미가 있습니다.
희망이 거기에 누군가가 나를 도울 수
건배,
아담
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];
}