MacOs监听文件拖拽入窗口

********************************************************************

#import <Cocoa/Cocoa.h>

@interface DragView : NSView

@property(nonatomic,assign)BOOL isDragIn;

@end

*************************************************************************


***************************************************************************

#import "DragView.h"

@implementation DragView

- (void)drawRect:(NSRect)dirtyRect {

    [super drawRect:dirtyRect];

    [self registerForDraggedTypes:[NSArray arrayWithObjects:NSFilenamesPboardType,nil]];

    if(_isDragIn) {

        NSLog(@"拖拽了");

    }

    // Drawing code here.

}

- (NSDragOperation)draggingEntered:(id)sender{

    _isDragIn=YES;

    [self setNeedsDisplay:YES];


    return NSDragOperationCopy;

}

- (void)draggingExited:(id)sender{

    _isDragIn=NO;


    [self setNeedsDisplay:YES];

}

- (BOOL)prepareForDragOperation:(id)sender{

    _isDragIn=NO;


    [self setNeedsDisplay:YES];


    return YES;

}

- (BOOL)performDragOperation:(id)sender{

    if([sender draggingSource] !=self){

        NSArray* filePaths = [[sender draggingPasteboard] propertyListForType:NSFilenamesPboardType];

        NSLog(@"文件地址%@",filePaths);

    }


    return YES;

}

@end

***************************************************************************************

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容