반응형

.h

NSView 상속


.m

-(id)init

{

    ....

        [self registerForDraggedTypes:@[NSFilenamesPboardType, NSURLPboardType]]; //드레그 타입 지정

    ....

}


//드레그 진입

-(NSDragOperation)draggingEntered:(id<NSDraggingInfo>)sender

{

    NSArray *pastboard = [[sender draggingPasteboard] propertyListForType:@"NSFilenamesPboardType"];

    if (pastboard != nil) {

        NSString * ext = [NSURL fileURLWithPath:[pastboard firstObject]].pathExtension; //파일 타입

        if ([ext isEqualToString:@"파일타입"]) { //원하는 파일 타입이 맞으면 백그라인드 파랗게, 파일 복사

            self.layer.backgroundColor = [NSColor blueColor].CGColor;

            return NSDragOperationCopy;

        }

    }

    return NSDragOperationNone;

}


//드레그후 드롭

-(void)draggingEnded:(id<NSDraggingInfo>)sender

{

    self.layer.backgroundColor = [NSColor whiteColor].CGColor;

}


//드레그 빠져나감

-(void)draggingExited:(id<NSDraggingInfo>)sender

{

    self.layer.backgroundColor = [NSColor whiteColor].CGColor;

}


//드레그엔 드롭 후 실행됨

-(BOOL)performDragOperation:(id<NSDraggingInfo>)sender

{

    NSArray *pastboard = [[sender draggingPasteboard] propertyListForType:@"NSFilenamesPboardType"];

    if (pastboard != nil) {

        NSLog(@"filepath = %@", [pastboard firstObject]);

        // 이곳에서 실제로 처리할 코드 실행

        return YES;

    }

    return NO;

}

반응형

'MacOS > objective-c' 카테고리의 다른 글

osx mkmapview 활용  (0) 2018.12.14
맥 키보드 입력 받기  (0) 2018.12.14
메뉴 바 아이콘 앱  (0) 2018.12.14
블로그 이미지

앱스페이스

,