2013-08-26 38 views
5

Ứng dụng Mac của tôi sẽ cho phép kéo và thả kPasteboardTypeFileURLTừ xa để nhận các lời hứa về tệp từ hoặc tới bảng thông báo.Xử lý lỗi khi giữ kPasteboardTypeFileURLPromise

Theo như tôi hiểu, mỗi NSPasteboardItem phải có kPasteboardTypeFileURLTốc độ trong các loại có sẵn của nó.

Không giống như NSURL được xử lý bởi đích kéo, kPasteboardTypeFileURLPromise được ghi bởi nguồn kéo đến vị trí đích được đặt bởi đích kéo.

Tuy nhiên, khi nguồn không thực hiện lời hứa, có vẻ như không có cách nào để chuyển đích đến thông tin người dùng khôi phục (ví dụ: NSRecoveryAttempterErrorKey, v.v.).

Phương pháp hay nhất để xử lý lỗi khi kéo kPasteboardTypeFileURLTừ khóa là gì? Chúng có nên được xử lý bởi nguồn kéo không?

Điều này có thể gây ra một số mâu thuẫn so với NSURL đã kéo mà lỗi được xử lý bởi đích đến.

Trả lời

1

nếu u cần phải sao chép tập tin vào clipboard, sử dụng này:

NSPasteboard *pasteBoard = [NSPasteboard generalPasteboard]; 
[pasteBoard declareTypes:[NSArray arrayWithObjects:NSStringPboardType, NSFilenamesPboardType, nil] owner:nil]; 
[pasteBoard setString:self.fullpath forType:NSStringPboardType];    // copy file path as string 
[pasteBoard setPropertyList:@[self.fullpath] forType:NSFilenamesPboardType]; // copy file link 
Các vấn đề liên quan