archer05 发表于 2015-12-31 12:15:00

Printing(Chapter 27 of Cocoa Programming for Mac OS X)

1 #import "PeopleView.h"
2 #import "Person.h"
3
4 @implementation PeopleView
5
6 - (id)initWithPeople:(NSArray *)persons
7 {
8   ;
9   people = ;
10   attributes = [ init];
11   NSFont *font = ;
12   lineHeight = * 1.7;
13   ;
14   return self;
15 }
16
17 - (id)initWithFrame:(NSRect)frame
18 {
19   self = ;
20   if (self) {
21         // Initialization code here.
22   }
23   
24   return self;
25 }
26
27 - (void)dealloc
28 {
29   ;
30   ;
31   ;
32 }
33
34 #pragma mark Pagination
35
36 - (BOOL)knowsPageRange:(NSRange *)range
37 {
38   NSPrintOperation *po = ;
39   NSPrintInfo *printInfo = ;
40   pageRect = ;
41   NSRect newFrame;
42   newFrame.origin = NSZeroPoint;
43   newFrame.size = ;
44   ;
45   
46   linesPerPage = pageRect.size.height / lineHeight;
47   
48   range->location = 1;
49   range->length = / linesPerPage;
50   if( % linesPerPage)
51   {
52         range->length = range->length + 1;
53   }
54   return YES;
55 }
56
57 - (NSRect)rectForPage:(NSInteger)page
58 {
59   currentPage = page - 1;
60   return pageRect;
61 }
62
63 #pragma mark Drawing
64
65 - (BOOL)isFlipped
66 {
67   return YES;
68 }
69
70 - (void)drawRect:(NSRect)dirtyRect
71 {
72   NSRect nameRect;
73   NSRect raiseRect;
74   raiseRect.size.height = nameRect.size.height = lineHeight;
75   nameRect.origin.x = pageRect.origin.x;
76   nameRect.size.width = 200.0;
77   raiseRect.origin.x = NSMaxX(nameRect);
78   raiseRect.size.width = 100.0;
79   
80   int i;
81   for(i=0 ;i<linesPerPage; i++)
82   {
83         int index = (currentPage * linesPerPage) + i;
84         if(index >= )
85         {
86             break;
87         }
88         Person *p = ;
89         
90         nameRect.origin.y = pageRect.origin.y + (i * lineHeight);
91         NSString *nameString = ];
92         ;
93         
94         raiseRect.origin.y = nameRect.origin.y;
95         NSString *raiseString = ];
96         ;
97   }
98 }
99
100 @end
页: [1]
查看完整版本: Printing(Chapter 27 of Cocoa Programming for Mac OS X)