registerForDraggedTypes具有自定义文件格式

nuk*_*ukl 4 cocoa objective-c

Developer Documentations没有提供registerForDraggedTypes方法的完整描述.例如,我希望我的应用程序仅允许访问"*.abc"文件.我怎样才能做到这一点?

Tom*_*Tom 6

如果您想将文件拖到视图上,则应注册该NSFilenamesPboardType类型.如果您只想接受某些文件名,则可以在执行时执行此操作performDragOperation:.就像是:

- (BOOL)performDragOperation:(id < NSDraggingInfo >)sender {
    NSArray *draggedFilenames = [[sender draggingPasteboard] propertyListForType:NSFilenamesPboardType];
    if ([[[draggedFilenames objectAtIndex:0] pathExtension] isEqual:@"abc"])
        return YES;
    else
        return NO;
}
Run Code Online (Sandbox Code Playgroud)