SlideShare a Scribd company logo
1 of 12
Download to read offline
2014/2/23

Cocoa

#23

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

1/12
2014/2/23

Cocoa

#23

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

2/12
2014/2/23

Cocoa

#23

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

3/12
2014/2/23

Cocoa

#23

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

4/12
2014/2/23

Cocoa

#23

#import <Cocoa/Cocoa.h>
@interface MyDocument : NSDocument
{
IBOutlet NSWindow *mySheet;
}
- (IBAction)openMySheet:(id)sender;
- (IBAction)closeMySheet:(id)sender;
- (IBAction)terminate:(id)dummy;
@end

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

5/12
2014/2/23

Cocoa

#23

#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

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

6/12
2014/2/23

Cocoa

#23

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

7/12
2014/2/23

Cocoa

#23

- (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];
}
file:///Users/msyk/Desktop/cocoastudy/Cocoa-Study/CocoaStudy23-CustomSheet/CocoaStudy-CustSheet.html

8/12
2014/2/23

Cocoa

#23

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

9/12
2014/2/23

Cocoa

#23

- (IBAction)terminate:(id)dummy
{
NSLog(@"Cought the message 'terminate'.");
NSApplication* myApp = [NSApplication sharedApplication];
[[myApp orderedDocuments]
makeObjectsPerformSelector:@selector(closeMySheet:) withObject:nil];
[myApp terminate:dummy];
}

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

10/12
2014/2/23

Cocoa

#23

- (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];

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

11/12
2014/2/23

Cocoa

#23

[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];
}

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

12/12

More Related Content

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

Hacking the Codename One Source Code - Part V - Transcript.pdf
Hacking the Codename One Source Code - Part V - Transcript.pdfHacking the Codename One Source Code - Part V - Transcript.pdf
Hacking the Codename One Source Code - Part V - Transcript.pdfShaiAlmog1
 
Why is my build times so long?
Why is my build times so long?Why is my build times so long?
Why is my build times so long?Kevin Simper
 
Mongo performance tuning: tips and tricks
Mongo performance tuning: tips and tricksMongo performance tuning: tips and tricks
Mongo performance tuning: tips and tricksVladimir Malyk
 
Windows Azure News - October 2013
Windows Azure News - October 2013Windows Azure News - October 2013
Windows Azure News - October 2013paulbouwer
 
Javascript native OOP - 3 layers
Javascript native OOP - 3 layers Javascript native OOP - 3 layers
Javascript native OOP - 3 layers David Nguyen
 
Chef Workshop: Setup Environment with Chef,Vagrant, and Berkshelf
Chef Workshop: Setup Environment with Chef,Vagrant, and BerkshelfChef Workshop: Setup Environment with Chef,Vagrant, and Berkshelf
Chef Workshop: Setup Environment with Chef,Vagrant, and BerkshelfJun Sakata
 
โครงงานคอมพิวเตอร์606
โครงงานคอมพิวเตอร์606โครงงานคอมพิวเตอร์606
โครงงานคอมพิวเตอร์606Ploy Purr
 
โครงงานคอมพิวเตอร์606
โครงงานคอมพิวเตอร์606โครงงานคอมพิวเตอร์606
โครงงานคอมพิวเตอร์606Ploy Purr
 
โครงงานคอมพิวเตอร์606
โครงงานคอมพิวเตอร์606โครงงานคอมพิวเตอร์606
โครงงานคอมพิวเตอร์606Ploy Purr
 
Flask Pykafka integration and Setup
Flask Pykafka integration and SetupFlask Pykafka integration and Setup
Flask Pykafka integration and SetupRati Sharma
 
Server(less) Swift at SwiftCloudWorkshop 3
Server(less) Swift at SwiftCloudWorkshop 3Server(less) Swift at SwiftCloudWorkshop 3
Server(less) Swift at SwiftCloudWorkshop 3kognate
 

Similar to Cocoa勉強会#23-カスタムシートとModality (12)

Hacking the Codename One Source Code - Part V - Transcript.pdf
Hacking the Codename One Source Code - Part V - Transcript.pdfHacking the Codename One Source Code - Part V - Transcript.pdf
Hacking the Codename One Source Code - Part V - Transcript.pdf
 
Why is my build times so long?
Why is my build times so long?Why is my build times so long?
Why is my build times so long?
 
Mongo performance tuning: tips and tricks
Mongo performance tuning: tips and tricksMongo performance tuning: tips and tricks
Mongo performance tuning: tips and tricks
 
Windows Azure News - October 2013
Windows Azure News - October 2013Windows Azure News - October 2013
Windows Azure News - October 2013
 
Javascript native OOP - 3 layers
Javascript native OOP - 3 layers Javascript native OOP - 3 layers
Javascript native OOP - 3 layers
 
Chef Workshop: Setup Environment with Chef,Vagrant, and Berkshelf
Chef Workshop: Setup Environment with Chef,Vagrant, and BerkshelfChef Workshop: Setup Environment with Chef,Vagrant, and Berkshelf
Chef Workshop: Setup Environment with Chef,Vagrant, and Berkshelf
 
Lecture: Webpack 4
Lecture: Webpack 4Lecture: Webpack 4
Lecture: Webpack 4
 
โครงงานคอมพิวเตอร์606
โครงงานคอมพิวเตอร์606โครงงานคอมพิวเตอร์606
โครงงานคอมพิวเตอร์606
 
โครงงานคอมพิวเตอร์606
โครงงานคอมพิวเตอร์606โครงงานคอมพิวเตอร์606
โครงงานคอมพิวเตอร์606
 
โครงงานคอมพิวเตอร์606
โครงงานคอมพิวเตอร์606โครงงานคอมพิวเตอร์606
โครงงานคอมพิวเตอร์606
 
Flask Pykafka integration and Setup
Flask Pykafka integration and SetupFlask Pykafka integration and Setup
Flask Pykafka integration and Setup
 
Server(less) Swift at SwiftCloudWorkshop 3
Server(less) Swift at SwiftCloudWorkshop 3Server(less) Swift at SwiftCloudWorkshop 3
Server(less) Swift at SwiftCloudWorkshop 3
 

More from Masayuki Nii

Framework Enabling End-Users to Maintain Web Applications (ICICWS2015)
Framework Enabling End-Users to Maintain Web Applications (ICICWS2015)Framework Enabling End-Users to Maintain Web Applications (ICICWS2015)
Framework Enabling End-Users to Maintain Web Applications (ICICWS2015)Masayuki Nii
 
トップエスイー勉強会2014第1回-INTER-Mediator
トップエスイー勉強会2014第1回-INTER-Mediatorトップエスイー勉強会2014第1回-INTER-Mediator
トップエスイー勉強会2014第1回-INTER-MediatorMasayuki Nii
 
Cocoa勉強会#62-新しい通信クラス群NSURLSessionを使ってみる
Cocoa勉強会#62-新しい通信クラス群NSURLSessionを使ってみるCocoa勉強会#62-新しい通信クラス群NSURLSessionを使ってみる
Cocoa勉強会#62-新しい通信クラス群NSURLSessionを使ってみるMasayuki Nii
 
Cocoa勉強会#34-iPhoneでタブバーを非表示に無理矢理する方法
Cocoa勉強会#34-iPhoneでタブバーを非表示に無理矢理する方法Cocoa勉強会#34-iPhoneでタブバーを非表示に無理矢理する方法
Cocoa勉強会#34-iPhoneでタブバーを非表示に無理矢理する方法Masayuki Nii
 
Cocoa勉強会#61-メインスレッド外でNSURLConnection
Cocoa勉強会#61-メインスレッド外でNSURLConnectionCocoa勉強会#61-メインスレッド外でNSURLConnection
Cocoa勉強会#61-メインスレッド外でNSURLConnectionMasayuki Nii
 
Cocoa勉強会#6-SQLiteをCocoaで使う
Cocoa勉強会#6-SQLiteをCocoaで使うCocoa勉強会#6-SQLiteをCocoaで使う
Cocoa勉強会#6-SQLiteをCocoaで使うMasayuki Nii
 
Cocoa勉強会#60-Common Cryptoを使った共通鍵の暗号と復号
Cocoa勉強会#60-Common Cryptoを使った共通鍵の暗号と復号Cocoa勉強会#60-Common Cryptoを使った共通鍵の暗号と復号
Cocoa勉強会#60-Common Cryptoを使った共通鍵の暗号と復号Masayuki Nii
 
Cocoa勉強会#57-Baseによるローカライズまとめ
Cocoa勉強会#57-BaseによるローカライズまとめCocoa勉強会#57-Baseによるローカライズまとめ
Cocoa勉強会#57-BaseによるローカライズまとめMasayuki Nii
 
Cocoa勉強会#56-小ネタ集あなたの常識はすでに通用しない
Cocoa勉強会#56-小ネタ集あなたの常識はすでに通用しないCocoa勉強会#56-小ネタ集あなたの常識はすでに通用しない
Cocoa勉強会#56-小ネタ集あなたの常識はすでに通用しないMasayuki Nii
 
Cocoa勉強会#45-AWS SimpleDBを使ってみる
Cocoa勉強会#45-AWS SimpleDBを使ってみるCocoa勉強会#45-AWS SimpleDBを使ってみる
Cocoa勉強会#45-AWS SimpleDBを使ってみるMasayuki Nii
 
Cocoa勉強会#36-iPhone OS 3.0で変更されたテーブルビュー
Cocoa勉強会#36-iPhone OS 3.0で変更されたテーブルビューCocoa勉強会#36-iPhone OS 3.0で変更されたテーブルビュー
Cocoa勉強会#36-iPhone OS 3.0で変更されたテーブルビューMasayuki Nii
 
Cocoa勉強会#33-意外に楽に使えるlibcurl
Cocoa勉強会#33-意外に楽に使えるlibcurlCocoa勉強会#33-意外に楽に使えるlibcurl
Cocoa勉強会#33-意外に楽に使えるlibcurlMasayuki Nii
 
Cocoa勉強会23-識別情報の変換〜文字エンコードとデータタイプ
Cocoa勉強会23-識別情報の変換〜文字エンコードとデータタイプCocoa勉強会23-識別情報の変換〜文字エンコードとデータタイプ
Cocoa勉強会23-識別情報の変換〜文字エンコードとデータタイプMasayuki Nii
 
Cocoa勉強会#37-シェイクイベントの実装
Cocoa勉強会#37-シェイクイベントの実装Cocoa勉強会#37-シェイクイベントの実装
Cocoa勉強会#37-シェイクイベントの実装Masayuki Nii
 
Cocoa勉強会#32-表形式のデータに順序を記録する方法
Cocoa勉強会#32-表形式のデータに順序を記録する方法Cocoa勉強会#32-表形式のデータに順序を記録する方法
Cocoa勉強会#32-表形式のデータに順序を記録する方法Masayuki Nii
 
Cocoa勉強会#35-iPhoneでのコピペとカスタムUI
Cocoa勉強会#35-iPhoneでのコピペとカスタムUICocoa勉強会#35-iPhoneでのコピペとカスタムUI
Cocoa勉強会#35-iPhoneでのコピペとカスタムUIMasayuki Nii
 
Cocoa勉強会#47-NSURLConnectionのデリゲートメソッドと認証
Cocoa勉強会#47-NSURLConnectionのデリゲートメソッドと認証Cocoa勉強会#47-NSURLConnectionのデリゲートメソッドと認証
Cocoa勉強会#47-NSURLConnectionのデリゲートメソッドと認証Masayuki Nii
 
Cocoa勉強会#38-UITableViewテーブル内のナビゲーション
Cocoa勉強会#38-UITableViewテーブル内のナビゲーションCocoa勉強会#38-UITableViewテーブル内のナビゲーション
Cocoa勉強会#38-UITableViewテーブル内のナビゲーションMasayuki Nii
 
Cocoa勉強会#43-Blocksを使う
Cocoa勉強会#43-Blocksを使うCocoa勉強会#43-Blocksを使う
Cocoa勉強会#43-Blocksを使うMasayuki Nii
 
Cocoa勉強会#42-UIWebKitをコンポーネントとして使う
Cocoa勉強会#42-UIWebKitをコンポーネントとして使うCocoa勉強会#42-UIWebKitをコンポーネントとして使う
Cocoa勉強会#42-UIWebKitをコンポーネントとして使うMasayuki Nii
 

More from Masayuki Nii (20)

Framework Enabling End-Users to Maintain Web Applications (ICICWS2015)
Framework Enabling End-Users to Maintain Web Applications (ICICWS2015)Framework Enabling End-Users to Maintain Web Applications (ICICWS2015)
Framework Enabling End-Users to Maintain Web Applications (ICICWS2015)
 
トップエスイー勉強会2014第1回-INTER-Mediator
トップエスイー勉強会2014第1回-INTER-Mediatorトップエスイー勉強会2014第1回-INTER-Mediator
トップエスイー勉強会2014第1回-INTER-Mediator
 
Cocoa勉強会#62-新しい通信クラス群NSURLSessionを使ってみる
Cocoa勉強会#62-新しい通信クラス群NSURLSessionを使ってみるCocoa勉強会#62-新しい通信クラス群NSURLSessionを使ってみる
Cocoa勉強会#62-新しい通信クラス群NSURLSessionを使ってみる
 
Cocoa勉強会#34-iPhoneでタブバーを非表示に無理矢理する方法
Cocoa勉強会#34-iPhoneでタブバーを非表示に無理矢理する方法Cocoa勉強会#34-iPhoneでタブバーを非表示に無理矢理する方法
Cocoa勉強会#34-iPhoneでタブバーを非表示に無理矢理する方法
 
Cocoa勉強会#61-メインスレッド外でNSURLConnection
Cocoa勉強会#61-メインスレッド外でNSURLConnectionCocoa勉強会#61-メインスレッド外でNSURLConnection
Cocoa勉強会#61-メインスレッド外でNSURLConnection
 
Cocoa勉強会#6-SQLiteをCocoaで使う
Cocoa勉強会#6-SQLiteをCocoaで使うCocoa勉強会#6-SQLiteをCocoaで使う
Cocoa勉強会#6-SQLiteをCocoaで使う
 
Cocoa勉強会#60-Common Cryptoを使った共通鍵の暗号と復号
Cocoa勉強会#60-Common Cryptoを使った共通鍵の暗号と復号Cocoa勉強会#60-Common Cryptoを使った共通鍵の暗号と復号
Cocoa勉強会#60-Common Cryptoを使った共通鍵の暗号と復号
 
Cocoa勉強会#57-Baseによるローカライズまとめ
Cocoa勉強会#57-BaseによるローカライズまとめCocoa勉強会#57-Baseによるローカライズまとめ
Cocoa勉強会#57-Baseによるローカライズまとめ
 
Cocoa勉強会#56-小ネタ集あなたの常識はすでに通用しない
Cocoa勉強会#56-小ネタ集あなたの常識はすでに通用しないCocoa勉強会#56-小ネタ集あなたの常識はすでに通用しない
Cocoa勉強会#56-小ネタ集あなたの常識はすでに通用しない
 
Cocoa勉強会#45-AWS SimpleDBを使ってみる
Cocoa勉強会#45-AWS SimpleDBを使ってみるCocoa勉強会#45-AWS SimpleDBを使ってみる
Cocoa勉強会#45-AWS SimpleDBを使ってみる
 
Cocoa勉強会#36-iPhone OS 3.0で変更されたテーブルビュー
Cocoa勉強会#36-iPhone OS 3.0で変更されたテーブルビューCocoa勉強会#36-iPhone OS 3.0で変更されたテーブルビュー
Cocoa勉強会#36-iPhone OS 3.0で変更されたテーブルビュー
 
Cocoa勉強会#33-意外に楽に使えるlibcurl
Cocoa勉強会#33-意外に楽に使えるlibcurlCocoa勉強会#33-意外に楽に使えるlibcurl
Cocoa勉強会#33-意外に楽に使えるlibcurl
 
Cocoa勉強会23-識別情報の変換〜文字エンコードとデータタイプ
Cocoa勉強会23-識別情報の変換〜文字エンコードとデータタイプCocoa勉強会23-識別情報の変換〜文字エンコードとデータタイプ
Cocoa勉強会23-識別情報の変換〜文字エンコードとデータタイプ
 
Cocoa勉強会#37-シェイクイベントの実装
Cocoa勉強会#37-シェイクイベントの実装Cocoa勉強会#37-シェイクイベントの実装
Cocoa勉強会#37-シェイクイベントの実装
 
Cocoa勉強会#32-表形式のデータに順序を記録する方法
Cocoa勉強会#32-表形式のデータに順序を記録する方法Cocoa勉強会#32-表形式のデータに順序を記録する方法
Cocoa勉強会#32-表形式のデータに順序を記録する方法
 
Cocoa勉強会#35-iPhoneでのコピペとカスタムUI
Cocoa勉強会#35-iPhoneでのコピペとカスタムUICocoa勉強会#35-iPhoneでのコピペとカスタムUI
Cocoa勉強会#35-iPhoneでのコピペとカスタムUI
 
Cocoa勉強会#47-NSURLConnectionのデリゲートメソッドと認証
Cocoa勉強会#47-NSURLConnectionのデリゲートメソッドと認証Cocoa勉強会#47-NSURLConnectionのデリゲートメソッドと認証
Cocoa勉強会#47-NSURLConnectionのデリゲートメソッドと認証
 
Cocoa勉強会#38-UITableViewテーブル内のナビゲーション
Cocoa勉強会#38-UITableViewテーブル内のナビゲーションCocoa勉強会#38-UITableViewテーブル内のナビゲーション
Cocoa勉強会#38-UITableViewテーブル内のナビゲーション
 
Cocoa勉強会#43-Blocksを使う
Cocoa勉強会#43-Blocksを使うCocoa勉強会#43-Blocksを使う
Cocoa勉強会#43-Blocksを使う
 
Cocoa勉強会#42-UIWebKitをコンポーネントとして使う
Cocoa勉強会#42-UIWebKitをコンポーネントとして使うCocoa勉強会#42-UIWebKitをコンポーネントとして使う
Cocoa勉強会#42-UIWebKitをコンポーネントとして使う
 

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