macOS/iOS API解説

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

目次

beginModalSessionForWindow:

INDEX>AppKit>NSApplication

ウインドウのモーダルセッションを開始します

Objective-C

-(NSModalSession)beginModalSessionForWindow:(NSWindow *)aWindow:

Swift

func beginModalSessionForWindow(_ aWindow: NSWindow) -> NSModalSession

解説

ウインドウのモーダルセッションを開始します。
モーダルセッションでは、アプリケーションはaWindowでのみ発生したマウスイベントを受け取ります。
ウインドウはすでに表示されていない場合、NSWindowのメソッドcenterを使ってスクリーンに配置される、キーウインドウになります。
beginModalSessionForWindow:メソッドはモーダルセッションをセットアップするだけです。
実際にセッションを実行するにはrunModalSession:を使用します。



モーダル監視は自分で行わなければなりません。
NS_DURINGブロックで例外をキャッチするようにします。

返り値

( NSModalSession )

NSModalSession構造体
モーダルセッション

引数

( NSWindow * )aWindow

ウインドウ

フレームワーク

ApplicationKit

クラス

NSApplication

使用可能

10.0

編集時のバージョン

10.10

参照

例文

#import "Controller.h"

@implementation Controller

NSModalSession mSession;
 
- (IBAction)startModal:(id)sender
{
	int modalCode;
	[NSApp stopModal];
	
	mSession = [NSApp beginModalSessionForWindow:panelWin];

	//モーダルの状態を監視
	do {
		//例外のハンドリング
		NS_DURING
			modalCode = [NSApp runModalSession: mSession];
		NS_HANDLER
			NSLog(@"%s\n", [[localException name] cStringUsingEncoding:NSASCIIStringEncoding]);
		NS_ENDHANDLER
			NSLog(@"--- noumal ");

	} while (modalCode == NSRunContinuesResponse);

}
- (IBAction)endModal:(id)sender
{

	[NSApp stopModal];
	[NSApp  endModalSession:mSession];
	[panelWin orderOut: self];


}

@end


Swift

    //NSApplication beginModalSessionForWindow runModalSession
    @IBAction func function014(sender: AnyObject) {
        NSLog("beginModalSessionForWindow")
        var modalCode:NSInteger;
        NSApp.stopModal()
        let anApplication = MyApplication.sharedApplication()
        var session:NSModalSession = anApplication.beginModalSessionForWindow(newWindow)
        
        do{
            modalCode = NSApp.runModalSession(session)
             NSLog("loop")
        }while (modalCode == NSRunContinuesResponse)
        NSLog("end")
        anApplication.endModalSession(session)
    }