hidesOnDeactivate
解説
アクティブでなくなったら、表示しないか。
NSWindowの初期設定は、NOです。
NSPanelの初期設定は、YESです。
他のアプリケーション(ここでは環境設定アプリ)に切り替えてウインドウとパネルがどうなるかのテスト。パネルはアクティブでなくなったら表示されない。でもメモリが開放されているわけではないので、アプリケーションがアクティブになれば表示される。下記にSwiftコードあり。
デアクティブで非表示 - YouTube
フレームワーク
ApplicationKit
クラス
NSWindow
使用可能
10.0
関連記事(外部リンク)
例文
if ([myWindow hidesOnDeactivate]){ [myWindow setHidesOnDeactivate:NO]; [info setStringValue:@"NO"]; } else { [myWindow setHidesOnDeactivate:YES]; [info setStringValue:@"YES"]; }
Swift
NSPanelはtrue,NSWindowはfalse
//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