12
2014/2/23 Cocoa #23 file:///Users/msyk/Desktop/cocoastudy/Cocoa-Study/CocoaStudy23-CustomSheet/CocoaStudy-CustSheet.html 1/12

Cocoa勉強会#23-カスタムシートとModality

Embed Size (px)

DESCRIPTION

Cocoa勉強会#23 2007/5/12 カスタムシートとModality 新居雅行

Citation preview

Page 1: Cocoa勉強会#23-カスタムシートとModality

2014/2/23 Cocoa #23

file:///Users/msyk/Desktop/cocoastudy/Cocoa-Study/CocoaStudy23-CustomSheet/CocoaStudy-CustSheet.html 1/12

Page 2: Cocoa勉強会#23-カスタムシートとModality

2014/2/23 Cocoa #23

file:///Users/msyk/Desktop/cocoastudy/Cocoa-Study/CocoaStudy23-CustomSheet/CocoaStudy-CustSheet.html 2/12

Page 3: Cocoa勉強会#23-カスタムシートとModality

2014/2/23 Cocoa #23

file:///Users/msyk/Desktop/cocoastudy/Cocoa-Study/CocoaStudy23-CustomSheet/CocoaStudy-CustSheet.html 3/12

Page 4: Cocoa勉強会#23-カスタムシートとModality

2014/2/23 Cocoa #23

file:///Users/msyk/Desktop/cocoastudy/Cocoa-Study/CocoaStudy23-CustomSheet/CocoaStudy-CustSheet.html 4/12

Page 5: Cocoa勉強会#23-カスタムシートとModality

2014/2/23 Cocoa #23

file:///Users/msyk/Desktop/cocoastudy/Cocoa-Study/CocoaStudy23-CustomSheet/CocoaStudy-CustSheet.html 5/12

#import <Cocoa/Cocoa.h>

@interface MyDocument : NSDocument

{

IBOutlet NSWindow *mySheet;

}

- (IBAction)openMySheet:(id)sender;

- (IBAction)closeMySheet:(id)sender;

- (IBAction)terminate:(id)dummy;

@end

Page 6: Cocoa勉強会#23-カスタムシートとModality

2014/2/23 Cocoa #23

file:///Users/msyk/Desktop/cocoastudy/Cocoa-Study/CocoaStudy23-CustomSheet/CocoaStudy-CustSheet.html 6/12

#import "MyDocument.h"

@implementation MyDocument

- (IBAction)openMySheet:(id)sender

{ }

- (IBAction)closeMySheet:(id)sender

{ }

- (id)init

{

self = [super init];

if (self) { }

return self;

}

- (NSString *)windowNibName

{

return @"MyDocument";

}

- (void)windowControllerDidLoadNib:(NSWindowController *) aController

{

[super windowControllerDidLoadNib:aController];

}

- (NSData *)dataRepresentationOfType:(NSString *)aType

{

return nil;

}

- (BOOL)loadDataRepresentation:(NSData *)data ofType:(NSString *)aType

{

return YES;

}

@end

Page 7: Cocoa勉強会#23-カスタムシートとModality

2014/2/23 Cocoa #23

file:///Users/msyk/Desktop/cocoastudy/Cocoa-Study/CocoaStudy23-CustomSheet/CocoaStudy-CustSheet.html 7/12

Page 8: Cocoa勉強会#23-カスタムシートとModality

2014/2/23 Cocoa #23

file:///Users/msyk/Desktop/cocoastudy/Cocoa-Study/CocoaStudy23-CustomSheet/CocoaStudy-CustSheet.html 8/12

- (IBAction)openMySheet:(id)sender

{

NSLog(@"Cought the message 'openMySheet'.");

NSApplication* myApp = [NSApplication sharedApplication];

[myApp beginSheet: mySheet

modalForWindow: [[[self windowControllers]lastObject]window]

modalDelegate: self

didEndSelector: @selector(mySheetDidEnd:returnCode:contextInfo:)

contextInfo: nil];

}

- (void) mySheetDidEnd: (NSWindow *) sheet

returnCode: (int) returnCode

contextInfo: (void *) contextInfo{

NSLog(@"Cought the message 'mySheetDidEnd'.");

[mySheet orderOut:self];

}

- (IBAction)closeMySheet:(id)sender

{

NSLog(@"Cought the message 'closeMySheet'.");

NSApplication* myApp = [NSApplication sharedApplication];

[myApp endSheet: mySheet];

}

Page 9: Cocoa勉強会#23-カスタムシートとModality

2014/2/23 Cocoa #23

file:///Users/msyk/Desktop/cocoastudy/Cocoa-Study/CocoaStudy23-CustomSheet/CocoaStudy-CustSheet.html 9/12

Page 10: Cocoa勉強会#23-カスタムシートとModality

2014/2/23 Cocoa #23

file:///Users/msyk/Desktop/cocoastudy/Cocoa-Study/CocoaStudy23-CustomSheet/CocoaStudy-CustSheet.html 10/12

- (IBAction)terminate:(id)dummy

{

NSLog(@"Cought the message 'terminate'.");

NSApplication* myApp = [NSApplication sharedApplication];

[[myApp orderedDocuments]

makeObjectsPerformSelector:@selector(closeMySheet:) withObject:nil];

[myApp terminate:dummy];

}

Page 11: Cocoa勉強会#23-カスタムシートとModality

2014/2/23 Cocoa #23

file:///Users/msyk/Desktop/cocoastudy/Cocoa-Study/CocoaStudy23-CustomSheet/CocoaStudy-CustSheet.html 11/12

- (IBAction)openMySheet:(id)sender

{

NSLog(@"Cought the message 'openMySheet'.");

NSApplication* myApp = [NSApplication sharedApplication];

[myApp beginSheet: mySheet

modalForWindow: [[[self windowControllers]lastObject]window]

modalDelegate: self

didEndSelector: @selector(mySheetDidEnd:returnCode:contextInfo:)

contextInfo: nil];

Page 12: Cocoa勉強会#23-カスタムシートとModality

2014/2/23 Cocoa #23

file:///Users/msyk/Desktop/cocoastudy/Cocoa-Study/CocoaStudy23-CustomSheet/CocoaStudy-CustSheet.html 12/12

[myApp endSheet: mySheet];

[myApp runModalForWindow:mySheet];

}

- (void) mySheetDidEnd: (NSWindow *) sheet

returnCode: (int) returnCode

contextInfo: (void *) contextInfo{

NSLog(@"Cought the message 'mySheetDidEnd'.");

}

- (IBAction)closeMySheet:(id)sender

{

NSLog(@"Cought the message 'closeMySheet'.");

NSApplication* myApp = [NSApplication sharedApplication];

[myApp stopModal];

[mySheet orderOut:self];

}