[Cocoa]_[初级]_[文件拖放操作]

本文介绍如何在Cocoa应用中实现文件拖放功能,包括创建DragDropView来接收文件、注册拖放事件监听、处理拖放操作及设置代理方法,详细讲解了实现文件拖放的五个关键步骤,并提供了示例代码。
摘要由CSDN通过智能技术生成

场景:支持所有类别的文件拖放(从外部直接拖文件到程序中)

1.首先要支持文件拖放,肯定要有一个放的位置,这里我们定义一个DragDropView来接收鼠标拖进来的文件。

2.对View进行注册拖放事件的监听[self registerForDraggedTypes:[NSArray arrayWithObjects:NSFilenamesPboardType, nil]];,可以监听多种类型,常用类型为:

         NSStringPboardType         字符串类型
         NSFilenamesPboardType      文件
         NSURLPboardType            url链接
         NSPDFPboardType            pdf文件
         NSHTMLPboardType           html文件

3.注册拖放事件监听之后,对鼠标拖放的文件进行接收,并把文件放到剪切版上

设置方法:-(NSDragOperation) draggingEntered:(id<NSDraggingInfo>)sender,如果拖放的文件符合注册拖放事件监听所支持的类型,则返回NSDragOperationCopy
    ,否则返回 NSDragOperationNone。

4.获取拖放的文件,从剪切版上获取之前拖放进来的文件

方法:-(BOOL) prepareForDragOperation:(id<NSDraggingInfo>)sender,获取拖放文件之后,把文件数组传递给DragDropView的代理方法,所以我们还要给DragDropView设置一个代理方法,方便对拖放的文件进行操作。

5.设置DragDropView的代理方法

 @property(assign) IBOutlet id<DragDropViewDelegate> delegate;


@protocol DragDropViewDelegate <NSObject>
//设置代理方法
-(void) doGetDragDropArrayFiles:(NSArray*) fileLists;

@end

总结:NSView支持文件拖放,主要步骤是注册拖放时间的监听器,设置监听的文件类型,接收拖放事件的方法,获取拖放文件的方法,设置View的代理,总共5步。


示例代码:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值