Ray's playground

 

Pasteboards and Nil-Targeted Actions(Chapter 21 of Cocoa Programming for Mac OS X)

 1 - (void)writeToPasteboard:(NSPasteboard *)pb
 2 {
 3     [pb declareTypes:[NSArray arrayWithObject:NSStringPboardType] owner:self];
 4     [pb setString:string forType:NSStringPboardType]; 
 5 }
 6 
 7 - (BOOL)readFromPasteboard:(NSPasteboard *)pb
 8 {
 9     NSArray *types = [pb types];
10     if([types containsObject:NSStringPboardType])
11     {
12         NSString *value = [pb stringForType:NSStringPboardType];
13         if([value length] == 1)
14         {
15             [self setString:value];
16             return YES;
17         }
18     }
19     
20     return NO;
21 }
22 
23 - (IBAction)cut:(id)sender
24 {
25     [self copy:sender];
26     [self setString:@""];
27 }
28 
29 - (IBAction)copy:(id)sender
30 {
31     NSPasteboard *pb = [NSPasteboard generalPasteboard];
32     [self writeToPasteboard:pb];
33 }
34 
35 - (IBAction)paste:(id)sender
36 {
37     NSPasteboard *pb = [NSPasteboard generalPasteboard];
38     if (![self readFromPasteboard:pb]) 
39     {
40         NSBeep();
41     }
42 }

posted on 2011-03-02 09:41  Ray Z  阅读(214)  评论(0编辑  收藏  举报

导航