frameRectForContentRect:styleMask:
内容とスタイルを合計した矩形を返します
+(NSRect)frameRectForContentRect:(NSRect)contentRect: styleMask:(unsigned int)aStyle:
解説
内容とスタイルを合計した矩形を返します。
タイトルバーがあれば、高さが増えます
例えば、通常タイトルバーは22.0なので
内容のサイズが300.0×200.0なら、内容は300.0×222.0となります
スクリーン座標で返されます
【styleMask】ウインドウのスタイル
Window Style Masks - Cocoa API解説(iOS/OS X)
● NSBorderlessWindowMask 全部なし
(それぞれを+すると両方とも)
● NSTitledWindowMask タイトルバー
● NSClosableWindowMask クローズボタン
● NSMiniaturizableWindowMask 最小化ボタン
● NSResizableWindowMask リサイズボタン
例)
content sizeが300.0✕200.0の場合、返される値は300.0✕222.0になる
Swift
NSWindow.frameRectForContentRect( NSMakeRect(0.0, 0.0, 300.0, 200.0), styleMask: NSTitledWindowMask | NSClosableWindowMask | NSMiniaturizableWindowMask | NSResizableWindowMask)
フレームワーク
ApplicationKit
クラス
NSWindow
使用可能
10.0
関連記事(外部サイト)
更新時バージョン
10.10
例文
#import "Controller.h" @implementation Controller - (IBAction)pushButton:(id)sender { NSRect frameRect; frameRect = [NSWindow frameRectForContentRect:NSMakeRect(0.0,0.0,300.0,300.0) styleMask:[myWindow styleMask]]; [info setStringValue:[NSString stringWithFormat:@"%.1f,%.1f,%.1f,%.1f",frameRect.origin.x,frameRect.origin.y,frameRect.size.width,frameRect.size.height]]; } @end
//NSWindow frameRectForContentRect @IBAction func function036(sender: AnyObject) { var windowRect : NSRect = NSWindow.frameRectForContentRect( NSMakeRect(0.0, 0.0, 300.0, 200.0), styleMask: NSTitledWindowMask | NSClosableWindowMask | NSMiniaturizableWindowMask | NSResizableWindowMask) NSLog("windowRect %.1f,%.1f,%.1f,%.1f",Float(windowRect.origin.x) , Float(windowRect.origin.y), Float(windowRect.size.width), Float(windowRect.size.height) ) //->windowRect 0.0,0.0,300.0,222.0 var aWindow : NSWindow = NSWindow(contentRect: windowRect, styleMask: NSTitledWindowMask | NSClosableWindowMask | NSMiniaturizableWindowMask | NSResizableWindowMask, backing: .Buffered, defer: false) windowArray.addObject(aWindow) //ウインドウを保持するための配列に追加。アプリ終了時に配列は破棄 aWindow.setDynamicDepthLimit(true ) aWindow.center()//ウインドウをスクリーンの中心に aWindow.title = "ウインドウタイトル"//タイトル設定 aWindow.orderFront(self)//前面に aWindow.makeKeyAndOrderFront(self)//表示 }