WARNING: This server is unstable and will be retired in the next days. If you want to keep this forum available, please request immediately a migration on the Nabble Support forum. Forums that don't receive any migration request will be deleted forever.

 « Return to Thread: Error in -NSURL writeToPasteboard:

Re: Error in -NSURL writeToPasteboard:

by Wolfgang Lux :: Rate this Message:

| View in Thread

Fred Kiefer wrote:

> On 24.04.2012 09:37, Andreas Schik wrote:
>> 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];
>> }
>
> Committed. Thank you for the analysis and the patch.

But it's not how OS X works. Quoting the NSURL Additions documentation  https://developer.apple.com/library/mac/#documentation/Cocoa/Reference/ApplicationKit/Classes/NSURL_AppKitAdditions/Reference/Reference.html%23//apple_ref/doc/uid/TP40004147 it says "You must declare an NSURLPboardType data type for pasteboard before invoking this method; otherwise it returns without doing anything." So, the correct fix is adding
  [pb declareTypes: [NSArray arrayWithObject: NSURLPboardType] owner: nil];
to NSWorkspace -openURL:

Wolfgang


_______________________________________________
Discuss-gnustep mailing list
Discuss-gnustep@...
https://lists.gnu.org/mailman/listinfo/discuss-gnustep

 « Return to Thread: Error in -NSURL writeToPasteboard: