macOS/iOS API解説

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

目次

hidesOnDeactivate

INDEX>AppKit>NSWindow

アクティブでなくなったら、表示しないか

Objective-C

@property BOOL hidesOnDeactivate

Swift

var hidesOnDeactivate: Bool

解説

アクティブでなくなったら、表示しないか。
NSWindowの初期設定は、NOです。
NSPanelの初期設定は、YESです。

他のアプリケーション(ここでは環境設定アプリ)に切り替えてウインドウとパネルがどうなるかのテスト。パネルはアクティブでなくなったら表示されない。でもメモリが開放されているわけではないので、アプリケーションがアクティブになれば表示される。下記にSwiftコードあり。

デアクティブで非表示 - YouTube

設定値

Objective-C

BOOL


Swift

Bool

表示しないYES/NO

フレームワーク

ApplicationKit

クラス

NSWindow

使用可能

10.0

関連記事(外部リンク)

例文

Objective-C

if ([myWindow hidesOnDeactivate]){
 [myWindow setHidesOnDeactivate:NO];
 [info setStringValue:@"NO"];
 }
 else
 {
  [myWindow setHidesOnDeactivate:YES];
 [info setStringValue:@"YES"];
  
 }
    

Swift
NSPanelはtrue,NSWindowはfalse
f:id:jjj777:20150220213643p:plain

    //NSWindow hidesOnDeactivate
    @IBAction func function011(sender: AnyObject) {
        var aWindow : NSWindow
        = NSWindow(contentRect: NSMakeRect(0.0, 0.0, 300.0, 200.0),
            styleMask: NSTitledWindowMask
                | NSClosableWindowMask
                | NSMiniaturizableWindowMask
                | NSResizableWindowMask,
            backing: .Buffered,
            defer: false,
            screen: NSScreen.mainScreen())
        windowArray.addObject(aWindow) //ウインドウを保持するための配列に追加。アプリ終了時に配列は破棄
        aWindow.center()//ウインドウをスクリーンの中心に
        if (aWindow.hidesOnDeactivate){
            aWindow.title = "NSWindow YES"
        }else{
            aWindow.title = "NSWindow NO"
        }
        aWindow.orderFront(self)//前面に
        aWindow.makeKeyAndOrderFront(self)//表示
        
        var aPanel : NSPanel
        = NSPanel(contentRect: NSMakeRect(0.0, 0.0, 300.0, 200.0),
            styleMask: NSTitledWindowMask
                | NSClosableWindowMask
                | NSMiniaturizableWindowMask
                | NSResizableWindowMask,
            backing: .Buffered,
            defer: false,
            screen: NSScreen.mainScreen())
        windowArray.addObject(aPanel) //ウインドウを保持するための配列に追加。アプリ終了時に配列は破棄
        aPanel.center()//ウインドウをスクリーンの中心に
        if (aPanel.hidesOnDeactivate){
            aPanel.title = "NSPanel YES"
        }else{
            aPanel.title = "NSPanel NO"
        }
        aPanel.orderFront(self)//前面に
        aPanel.makeKeyAndOrderFront(self)//表示
    }

編集時のバージョン

10.10