PackagedDocument/ImageView.m
/* |
Copyright (C) 2017 Apple Inc. All Rights Reserved. |
See LICENSE.txt for this sample’s licensing information |
Abstract: |
Custom NSImageView for intercepting delete/cut/paste operations. |
*/ |
#import "ImageView.h" |
@implementation ImageView |
- (void)copy:(id)sender |
{ |
if ([self allowsCutCopyPaste]) |
{ |
NSImage *anImage = [self image]; |
if (anImage != nil) |
{ |
// copy to pasteboard |
NSPasteboard *pboard = [NSPasteboard generalPasteboard]; |
[pboard declareTypes: [NSArray arrayWithObject:NSTIFFPboardType] owner:self]; |
[pboard setData: [anImage TIFFRepresentation] forType: NSTIFFPboardType]; |
} |
} |
} |
- (void)paste:(id)sender { |
NSPasteboard *pasteboard = [NSPasteboard generalPasteboard]; |
NSArray *classArray = [NSArray arrayWithObject:[NSImage class]]; |
NSDictionary *options = [NSDictionary dictionary]; |
if ([pasteboard canReadObjectForClasses:classArray options:options]) |
{ |
NSArray *objectsToPaste = [pasteboard readObjectsForClasses:classArray options:options]; |
NSImage *image = [objectsToPaste objectAtIndex:0]; |
[self setImage:image]; |
} |
// Notify our delegate of the image change. |
[self.delegate imageView:self didChangeImage:self.image]; |
} |
- (void)delete:(id)sender |
{ |
if ([self allowsCutCopyPaste]) |
{ |
[self setImage: nil]; |
} |
// Notify our delegate of the image change. |
[self.delegate imageView:self didChangeImage:self.image]; |
} |
- (void)cut:(id)sender |
{ |
if ([self allowsCutCopyPaste]) |
{ |
[self copy: sender]; |
[self setImage: nil]; |
} |
// Notify our delegate of the image change. |
[self.delegate imageView:self didChangeImage:self.image]; |
} |
@end |
Copyright © 2017 Apple Inc. All Rights Reserved. Terms of Use | Privacy Policy | Updated: 2017-03-09