FROM : Stefan
DATE : Sun Aug 06 23:19:08 2006
Great hint! I copied parts of MultiplePageView's code and changed
(void)updateFrame
to this:
>>>
- (void)updateFrame {
NSRect rect = NSZeroRect;
rect.size = [printInfo paperSize];
rect.size.height = rect.size.height * numPages;
if (numPages > 1) rect.size.height += (numPages - 1);
if ([self superview]) {
rect.size = [self convertSize:rect.size toView:[self
superview]];
}
[self setFrame:rect];
}
<<<
I had to change this method from MultiplePageView, since my view is a
'pure'
view in IB and thus has no surrounding superview. Now, my NSView
subclass filles the
complete printer's page and is top-left aligned on the printed page.
Am 06.08.2006 um 18:36 schrieb Todd Ransom:
> Stefan,
>
> Have you looked at TextEdit? The rectForPage: method in
> MultiplePageView seems like it does what you want.
>
> Todd Ransom
> Return Self Software
> http://returnself.com
>
>
>
> On Aug 6, 2006, at 10:09 AM, Stefan wrote:
>
>>
>> Am 06.08.2006 um 17:57 schrieb Stefan:
>>
>>> I'll try to rephrase: My NSView subclass prints its content
>>> correctly, but does
>>> not get aligned to the top-left corner of the page nor resized to
>>> fit the printer's
>>> page size.
>>
>> I suppose my problem is related to this:
>>
>> >>>
>> // Return the drawing rectangle for a particular page number
>> - (NSRect)rectForPage:(int)page {
>> NSRect bounds = [self bounds];
>> float pageHeight = [self calculatePrintHeight];
>> return NSMakeRect( NSMinX(bounds), NSMaxY(bounds) - page *
>> pageHeight,
>> NSWidth(bounds), pageHeight );
>> }
>> <<<
>>
>> I never defined 'bounds', since my view is not on-screen.
DATE : Sun Aug 06 23:19:08 2006
Great hint! I copied parts of MultiplePageView's code and changed
(void)updateFrame
to this:
>>>
- (void)updateFrame {
NSRect rect = NSZeroRect;
rect.size = [printInfo paperSize];
rect.size.height = rect.size.height * numPages;
if (numPages > 1) rect.size.height += (numPages - 1);
if ([self superview]) {
rect.size = [self convertSize:rect.size toView:[self
superview]];
}
[self setFrame:rect];
}
<<<
I had to change this method from MultiplePageView, since my view is a
'pure'
view in IB and thus has no surrounding superview. Now, my NSView
subclass filles the
complete printer's page and is top-left aligned on the printed page.
Am 06.08.2006 um 18:36 schrieb Todd Ransom:
> Stefan,
>
> Have you looked at TextEdit? The rectForPage: method in
> MultiplePageView seems like it does what you want.
>
> Todd Ransom
> Return Self Software
> http://returnself.com
>
>
>
> On Aug 6, 2006, at 10:09 AM, Stefan wrote:
>
>>
>> Am 06.08.2006 um 17:57 schrieb Stefan:
>>
>>> I'll try to rephrase: My NSView subclass prints its content
>>> correctly, but does
>>> not get aligned to the top-left corner of the page nor resized to
>>> fit the printer's
>>> page size.
>>
>> I suppose my problem is related to this:
>>
>> >>>
>> // Return the drawing rectangle for a particular page number
>> - (NSRect)rectForPage:(int)page {
>> NSRect bounds = [self bounds];
>> float pageHeight = [self calculatePrintHeight];
>> return NSMakeRect( NSMinX(bounds), NSMaxY(bounds) - page *
>> pageHeight,
>> NSWidth(bounds), pageHeight );
>> }
>> <<<
>>
>> I never defined 'bounds', since my view is not on-screen.
| Related mails | Author | Date |
|---|---|---|
| Stefan | Aug 5, 12:34 | |
| Stefan | Aug 6, 17:41 | |
| Shawn Erickson | Aug 6, 17:53 | |
| Stefan | Aug 6, 17:57 | |
| Stefan | Aug 6, 18:09 | |
| Todd Ransom | Aug 6, 18:36 | |
| Stefan | Aug 6, 18:43 | |
| Stefan | Aug 6, 23:19 |






Cocoa mail archive

