Objective-C种Drag 和Drop操作

苹果在一些协议里面实现了拖拽操作。比如重写一个子类继承NSView.那么就可以实现拖拽操作。NSView继承于NSResponder。而后者遵循了NSDraggingDestination协议,在这个协议里面有一些方法可以实现拖放。拖放操作都是通过粘贴板来实现的,拖过程会把数据写入到粘贴板上,放操作则会从粘贴板上读取数据,进而进行下一步操作,比如显示文件。有些控件的数据源协议本身就带有拖拽,因此不需要重写控件来实现拖拽,比如NSTableView,NSOutlineView等。你只需要给他们注册拖拽类型,实现数据源协议里的拖放方法即可,如果它们不注册拖拽类型,那么拖放的协议方法是不会调用的。

你可能感兴趣的:(Objective-C种Drag 和Drop操作)