macOS/iOS API解説

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

目次

unhideWithoutActivation

INDEX>AppKit>NSApplication

アプリケーションをアクティブにすることなくウインドウを元に戻します

Objective-C

- (void)unhideWithoutActivation

Swift

func unhideWithoutActivation()


developer.apple.com

解説

アプリケーションをアクティブにすることなくウインドウを元に戻します。
このメソッドが開始するとき、デフォルトの通知センターにNSApplicationWillUnhideNotificationをポストします。
うまくいけばNSApplicationDidUnhideNotificationをポストします。

返り値

なし

引数

なし

フレームワーク

ApplicationKit

クラス

NSApplication

使用可能

10.0

編集時のバージョン

10.14.5
Swift4.2

参照

- activateIgnoringOtherApps
- hide
- applicationDidUnhide: (NSApplicationDelegte)
- applicationWillUnhide: (NSApplicationDelegte)

例文

Objective-C

#import "Controller.h"

@implementation Controller
NSTimer *timer=nil;

- (IBAction)pushButton:(id)sender
{
	[[NSApplication sharedApplication] hide:nil];

	NSDate *theDate = [NSDate dateWithTimeIntervalSinceNow:10]; //10秒後にタイマー起動  
	//userInfoに使う辞書を作成
	NSDictionary *userInfoDictionary =[NSDictionary dictionaryWithObjectsAndKeys:
						self,@"key",nil];
	//タイマー作成
	timer = [NSTimer scheduledTimerWithTimeInterval:1.0
							target:		self
							selector:	@selector(timerControl:)
							userInfo:	userInfoDictionary
								repeats:NO];
	//起動時間セット
	[timer setFireDate:theDate];
	[[NSRunLoop currentRunLoop] addTimer:timer forMode:NSModalPanelRunLoopMode];

}

-(void) timerControl:(NSTimer *)aTimer
{
	[NSApp unhideWithoutActivation];
}

//デリゲートメソッド
- (void)applicationWillUnhide:(NSNotification *)aNotification
{
	NSLog(@"applicationWillUnhide");
}
- (void)applicationDidUnhide:(NSNotification *)notification
{
	NSLog(@"applicationDidUnhide");
}
@end

Swift4.2

    @IBAction func function013(_ sender: Any) {
        print("function013 called")
        //タイマー作成let timer
        let timer1 = Timer.scheduledTimer(timeInterval: 5.0, target: self, selector: #selector(ViewController.action013_1), userInfo: nil, repeats: false)
        //タイマー作成let timer
        let timer2 = Timer.scheduledTimer(timeInterval: 10.0, target: self, selector: #selector(ViewController.action013_2), userInfo: nil, repeats: false)
        
        print("timer1 Object: \(timer1).")
        print("timer2 Object: \(timer2).")
    }
    //method for timer
    @objc func action013_1() {
        print("hide")//ここは実行される
        let anApplication = NSApplication.shared        
        anApplication.hide(self) //非表示
        
    }
    //method for timer
    @objc func action013_2() {
        print("unhide")//ここは実行される
        let anApplication = NSApplication.shared      
        anApplication.unhideWithoutActivation()//表示
        
    }


Swift

   //NSApplication unhideWithoutActivation:
    @IBAction func function034(sender: AnyObject) {
        //共有アプリケーションインスタンスを取得
        let anApplication = MyApplication.sharedApplication()
        //アプリケーションを隠す
        anApplication.hide(self)
        NSLog("I will unhide after 5 minutes")
        //タイマー作成
        var timer = NSTimer.scheduledTimerWithTimeInterval(5.0, target: self, selector: Selector("unhideAppwithoutAct:"), userInfo: nil, repeats: false)
        
    }
    //タイマーが起動した時の実行メソッド
    func unhideAppwithoutAct(timer:NSTimer!) {
        NSLog("unhide now")//ここは実行される
        let anApplication = NSApplication.sharedApplication()
        //アプリケーション終了
        anApplication.unhideWithoutActivation()
        NSLog("end")
    }