NSPasteboard *pasteboard = [NSPasteboard generalPasteboard];
NSArray *types = [pasteboard types];
if ([[pasteboard types] containsObject:NSPasteboardTypeString]) {
// s 就是剪切板里的字符串, 如果你拷贝的是一个或多个的文件,文件夹, 这里就是文件或文件夹的名称
NSString *s = [pasteboard stringForType:NSPasteboardTypeString];
// do something
}
if ([[pasteboard types] containsObject:NSPasteboardTypePDF]) {
NSData *pdfData = [pasteboard dataForType:NSPasteboardTypePDF];
// do something
}
if ([[pasteboard types] containsObject:NSPasteboardTypePNG]) {
NSData *pdfData = [pasteboard dataForType:NSPasteboardTypePNG];
// do something
}
if ([[pasteboard types] containsObject:NSFilenamesPboardType]) {
NSArray *filenames = [pasteboard stringForType:NSFilenamesPboardType];
// do something
}
// 10.6以后,最好用这些常量
NSString *const NSPasteboardTypeString;
NSString *const NSPasteboardTypePDF;
NSString *const NSPasteboardTypeTIFF;
NSString *const NSPasteboardTypePNG;
NSString *const NSPasteboardTypeRTF;
NSString *const NSPasteboardTypeRTFD;
NSString *const NSPasteboardTypeHTML;
NSString *const NSPasteboardTypeTabularText;
NSString *const NSPasteboardTypeFont;
NSString *const NSPasteboardTypeRuler;
NSString *const NSPasteboardTypeColor;
NSString *const NSPasteboardTypeSound;
NSString *const NSPasteboardTypeMultipleTextSelection;
NSString *const NSPasteboardTypeFindPanelSearchOptions;
10.5以前
NSString *NSStringPboardType;
NSString *NSFilenamesPboardType;
NSString *NSPostScriptPboardType;
NSString *NSTIFFPboardType;
NSString *NSRTFPboardType;
NSString *NSTabularTextPboardType;
NSString *NSFontPboardType;
NSString *NSRulerPboardType;
NSString *NSFileContentsPboardType;
NSString *NSColorPboardType;
NSString *NSRTFDPboardType;
NSString *NSHTMLPboardType;
NSString *NSPICTPboardType;
NSString *NSURLPboardType;
NSString *NSPDFPboardType;
NSString *NSVCardPboardType;
NSString *NSFilesPromisePboardType;
NSString *NSMultipleTextSelectionPboardType;
从上面两个列表看来, 10.6对这些类型重新命名, 将原来的名换了下前缀, 就是以NSPasteboard***打头, 这样在使用代码自动完成时,很容易找到这些常量, 可是NSFilenamesPboardType, 虽然在10.8里还可以使用, 为什么10.6的列表里,找不到对应的, 这个比较常用, 难道苹果以后不允许我们拿pasteborad里的文件路径