Để tham khảo trong tương lai, tôi đặc biệt quan tâm đến việc có được danh sách các ứng dụng có khả năng mở một loại tài liệu cụ thể. Câu trả lời được chấp nhận chỉ đúng hướng nhưng không phải là giải pháp hoàn chỉnh như LSCopyApplicaionURLsForURL
và anh chị em của nó LSCopyAllRoleHandlersForContentType
trả về mã định danh gói, chứ không phải chính ứng dụng. Vì vậy, tôi vẫn cần thiết của ứng dụng:
- Đường dẫn
- Tên hiển thị; và
- Biểu tượng
Dưới đây là đoạn code tôi đã sử dụng để lấy tất cả các thông tin mà:
NSArray* handlers = LSCopyAllRoleHandlersForContentType(@"com.adobe.pdf", kLSRolesAll);
for (NSString* bundleIdentifier in handlers) {
NSString* path = [[NSWorkspace sharedWorkspace] absolutePathForAppBundleWithIdentifier: bundleIdentifier];
NSString* name = [[NSFileManager defaultManager] displayNameAtPath: path];
NSImage* icon = [[NSWorkspace sharedWorkspace] iconForFile: path];
}
Nguồn
2009-12-23 17:33:40