Re: why does print block in Lion?
Re: why does print block in Lion?
- Subject: Re: why does print block in Lion?
- From: "Gerriet M. Denkmann" <email@hidden>
- Date: Sat, 17 Sep 2011 20:02:09 +0700
See comments below:
>
> In my TestDocument (subclass of NSDocument) I added the following code (see comments inside, which explain what's happening when I do File â∫‚ Print...):
>
>
> - (NSPrintOperation *)printOperationWithSettings:(NSDictionary *)printSettings error:(NSError **)outError
> {
> NSLog(@"%s printSettings %@, outError %p",__FUNCTION__, printSettings, outError);
> // -[TestDocument printOperationWithSettings:error:] printSettings {}, outError 0x7fff5fbfed38
>
> NSPrintInfo *pi = [ self printInfo ];
> NSLog(@"%s printInfo %@",__FUNCTION__, pi);
> #if 0
> -[TestDocument printOperationWithSettings:error:] printInfo
> {
> NSBottomMargin = 90;
> NSCopies = 1;
> NSDetailedErrorReporting = 0;
> [...]
> NSVerticalPagination = 0;
> NSVerticallyCentered = 1;
> }
> #endif
>
> NSPrintOperation *op = [ NSPrintOperation printOperationWithView: textView printInfo: pi ];
> NSLog(@"%s NSPrintOperation %@ - now run modal",__FUNCTION__, op);
> // NSPrintOperation <NSConcretePrintOperation: 0x1003b8900> - now run modal
>
> [ self runModalPrintOperation: op
> delegate: nil
> didRunSelector: NULL
> contextInfo: NULL
> ];
When I remove the call above (runModalPrintOperation...) then it prints ok.
The documentation says: "Overrides of printShowingPrintPanel: can invoke this method."
Is this a documentation error, and it should be: "Overrides of printShowingPrintPanel: prior to Lion can invoke this method. In Lion it should NOT be used." ?
Or am I just confused?
> NSLog(@"%s will return %@",__FUNCTION__, op); // â∫∆ never comes to here
> // and also no PrintPanel is shown.
> // if paused, we get this bt:
> #if 0
> #0 0x00007fff8e21e08e in _dispatch_semaphore_wait_slow ()
> #1 0x00007fff8eb8a616 in -[NSDocument performActivityWithSynchronousWaiting:usingBlock:] ()
> #2 0x00007fff8eb7a518 in -[NSDocument runModalPrintOperation:delegate:didRunSelector:contextInfo:] ()
> #3 0x0000000100001a2d in -[TestDocument printOperationWithSettings:error:] (self=0x10013e1e0, _cmd=0x7fff8f081f50, printSettings=0x1001161e0, outError=0x7fff5fbfed38) at TestDocument.m:274
> #endif
>
> return op;
> }
>
> This code above is taken from some other app, which prints just fine in SnowLeopard (but also hangs in Lion).
>
> What am I doing wrong?
> Why is there no PrintPanel shown? Why does it just block?
>
> Kind regards,
>
> Gerriet.
>
_______________________________________________
Cocoa-dev mailing list (email@hidden)
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:
This email sent to email@hidden