Thanks Ken, moving it to my window controller got my validRequestorForSendType
called, but the services menu now shows up with just one item: "Notebook
Clipping Setup".
So as it stands, this is my code:
+ (void)initialize {
[NSApp registerServicesMenuSendTypes:[NSArray
arrayWithObject:NSFilenamesPboardType] returnTypes:nil];
}
- (id)validRequestorForSendType:(NSString *)sendType returnType:(NSString
*)returnType {
if ([sendType isEqualToString:NSFilenamesPboardType]) {
NSDocument *d = [self document];
if ([d fileURL] && ![[self window] isDocumentEdited]) {
return self;
}
}
return nil;
}
- (BOOL)writeSelectionToPasteboard:(NSPasteboard *)pboard types:(NSArray
*)types {
if ([types containsObject:NSFilenamesPboardType]) {
NSDocument *d = [self document];
if ([d fileURL] && ![[self window] isDocumentEdited]) {
[pboard setString:[[d fileURL] path] forType:NSFilenamesPboardType];
return YES;
}
}
return NO;
}
With this type registeredI see that the validRequestorForSendType is called
asking for the following types:
com.apple.flat-rtfd
dyn.agu8y6y4grf0gn5xbrzw1gydcr7u1e3cytf2gn
NeXT Rich Text Format v1.0 pasteboard type
NeXT RTFD pasteboard type
NSFilenamesPboardType
NSStringPboardType
public.rtf
public.utf8-plain-text
If I have a dirty document, or one that has just been created, the services
menu is empty as expected. However, when I have a saved document selected, the
only item that shows up is the notebook clipping setup.
Seeing as the service I want to be available is specified in the mail
info.plist using the NSFilenamesPboardType, I'm not sure where else the problem
could lie.
Anyone have any other suggestions?
Thanks
Gideon
On 11/05/2012, at 7:17 PM, Ken Thomases wrote:
>
> That service is defined in Mail's Info.plist and it takes
> NSFilenamesPboardType.
>
>> I then put breakpoints in the other two methods, but they were never called.
>
> The Services docs say that the latter two methods must be on an NSResponder
> object, like a view or window. I recognize that the document is in the
> responder chain for action messages, but that may not suffice for this case.
> The docs also say:
>
> "The validRequestorForSendType:returnType: message is sent along an abridged
> responder chain, comprising only the responder chain for the key window and
> the application object."
>
> Regards,
> Ken
>
_______________________________________________
Cocoa-dev mailing list ([email protected])
Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com
Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com
This email sent to [email protected]