macOS/iOS API解説

iOS , Mac アプリケーション開発のために使われる主要フレームワークの日本語情報です。2010年代に書かれた内容です。今後更新はありません。

目次

terminate:

アプリケーションを終了します
-(void)terminate:(id)sender:

解説

アプリケーションを終了します。まずapplicationShouldTerminate:を呼び出してアプリケーションが終了することをデリゲートに通知します。NOが返されると終了しません。YESが返されるとデフォルトの通知センターにNSApplicationWillTerminateNotificationをポストします。

返り値

( void )

なし

引数

( id )sender

送信オブジェクト

フレームワーク

ApplicationKit

クラス

NSApplication

Instance Methods

使用可能

10.0

参照

- run
- stop:

例文

#import "Controller.h"

@implementation Controller

- (IBAction)pushButton:(id)sender
{
	[info setStringValue:@"終了処理を終えてから約10秒後に終了します"];
	[NSApp terminate:sender];
	
}

NSTimer *timer=nil;

- (NSApplicationTerminateReply)applicationShouldTerminate:(NSApplication *)theApplication
{
	NSLog(@"applicationShouldTerminate");
	NSDate *theDate = [NSDate dateWithTimeIntervalSinceNow:10]; //10秒後にタイマー起動  
	//userInfoに使う辞書を作成
	NSDictionary *userInfoDictionary =[NSDictionary dictionaryWithObjectsAndKeys:
						@"value1",@"key1",
						@"終了",@"key2",
						@"value3",@"key3",nil];
	//タイマー作成
	timer = [NSTimer scheduledTimerWithTimeInterval:1.0
							target:		self
							selector:	@selector(timerControl:)
							userInfo:	userInfoDictionary
								repeats:NO];
	//起動時間セット
	[timer setFireDate:theDate];
	[[NSRunLoop currentRunLoop] addTimer:timer forMode:NSModalPanelRunLoopMode];
	
	return NSTerminateLater;
}

//2分以内に
-(void) timerControl:(NSTimer *)aTimer
{
	NSLog(@"...%@",[[aTimer userInfo] objectForKey:@"key2"]);
	//NSLog([[timer fireDate] description]);
	[NSApp replyToApplicationShouldTerminate:YES];
}
@end