Hi,
I was trying to install a default OpenURL service on my system and came
across the following: while my service was being called it could not
read the URL from the pasteboard. The pasteboard passed to my service
reported an empty list of types, while there should of course be data of
type NSURLPboardType.
Digging around I found the above mentioned method declared in
NSPasteboard.m. This is called from somewhere in NSWorkspace to pass the
URL to the service. While the URL as such gets written to the
pasteboard, the method IMHO forgets to declare the proper type. Changing
the method as follows remedied my problem:
- (void) writeToPasteboard: (NSPasteboard *)pasteBoard
{
[pasteBoard declareTypes: [NSArray arrayWithObjects:
NSURLPboardType,nil]
owner: nil];
[pasteBoard setString: [self absoluteString]
forType: NSURLPboardType];
}