.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 |