Trong ứng dụng OS X của tôi, tôi muốn cho phép người dùng chỉnh sửa hình ảnh với các tiện ích mở rộng hành động thích hợp được cài đặt trên máy Mac, ví dụ như tiện ích đánh dấu hình ảnh như trong Mail.app hoặc TextEdit (dành cho các tệp RTFD có hình ảnh) - hoặc công cụ sửa chữa của Pixelmator nếu có. Theo như tôi có thể nhớ lại, Apple thông báo tại WWDC '14 sẽ có một API công khai cho nhiệm vụ này.Sử dụng tiện ích Chỉnh sửa hình ảnh trên Yosemite trong ứng dụng riêng
Rất tiếc, tôi không thể tìm thấy bất kỳ điểm bắt đầu nào về cách sử dụng tiện ích mở rộng từ phối cảnh ứng dụng máy chủ, không phải tài liệu cũng như mã mẫu.
tôi phát hiện ra rằng bạn phải thiết lập thuộc tính phong cách không có giấy tờ của NSSharingPicker đến một giá trị khác không như thế này:
- (IBAction)testSharingPicker:(id)sender
{
NSSharingServicePicker *picker = [[NSSharingServicePicker alloc] initWithItems:@[[self.listing.images.firstObject thumbImage]]];
[picker setValue:@(1) forKey:@"style"];
[picker setDelegate:self];
[picker showRelativeToRect:[sender bounds] ofView:sender preferredEdge:NSMinYEdge];
}
Khi giá trị phong cách được thiết lập, bạn biết bạn là đi đúng hướng bởi vì - (NSArray *)sharingServicePicker:(NSSharingServicePicker *)sharingServicePicker sharingServicesForItems:(NSArray *)items proposedSharingServices:(NSArray *)proposedServices
được gọi với các tiện ích chỉnh sửa hình ảnh được cài đặt trên hệ thống của tôi, thay vì các tiện ích chia sẻ thông thường.
Bạn cũng cần phải thực hiện một phương pháp đại biểu không có giấy tờ:
- (BOOL)sharingServicePicker:(NSSharingServicePicker *)sharingService shouldShowForView:(NSView*) inView
{
return YES;
}
Nhưng vẫn còn, bảng chọn không hiển thị. Tất cả những gì tôi nhận được là một số đường viền kỳ lạ xung quanh nút sender
.
Bạn có chơi với '-sharingService: sourceFrameOnScreenForShareItem: '' - sharingService: transitionImageForShareItem: contentRect: 'và' -sharingService: sourceWindowForShareItems: sharingContentScope: '? – catlan
Có, tôi đã triển khai tất cả các phương pháp này. Không tạo ra bất kỳ sự khác biệt nào. Tôi không đến mức họ được gọi. – iljawascoding
Gửi email <[email protected]> hoặc gửi yêu cầu nâng cao (báo cáo lỗi @:) và yêu cầu câu trả lời chính thức. –
geowar