モーダルセッションを実行します
Swift4.2
open func runModalSession(_ session: NSApplication.ModalSession) -> NSApplication.ModalResponse
- (NSInteger)runModalSession:(NSModalSession)session
解説
モーダルセッションを実行します。
【モーダルの状態】
Swift4.2
NSApplication.ModalSession
● .continue モーダルセッションは継続中
● .stop
Objective-C
● NSRunStoppedResponse
● NSRunAbortedResponse
● NSRunContinuesResponse モーダルセッションは継続中
引数
( NSModalSession )session
beginModalSessionForWindow:で返されるモーダルセッション
フレームワーク
ApplicationKit
クラス
NSApplication
使用可能
10.0
編集時のバージョン
OS X 10.14.5
Swift4.2
例文
Swift4.2
let anApplication = MyApplication.shared let session :NSApplication.ModalSession = anApplication.beginModalSession(for: modalWindow) while true { //circleIndi.doubleValue = circleIndi.doubleValue + 0.1 circleIndi.doubleValue = 50.0 if (anApplication.runModalSession(session) != .continue){ break; } print("!!") } anApplication.endModalSession(session)
#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) }