contentRectForFrameRect:styleMask:
フレームからスタイルを引いた内容だけの矩形を返します
+ (NSRect)contentRectForFrameRect:(NSRect)windowFrame
styleMask:(NSUInteger)windowStyle
class func contentRectForFrameRect(_ windowFrame: NSRect, styleMask windowStyle: Int) -> NSRect
解説
フレームからスタイルを引いた内容だけの矩形を返します。
タイトルバーがあれば、高さが減ります。
例えば、通常タイトルバーは22.0なので
フレームのサイズが300.0×300.0なら、内容は300.0×278.0となります。
スクリーン座標で返される
【styleMask】ウインドウのスタイル
Window Style Masks - Cocoa API解説(iOS/OS X)
● NSBorderlessWindowMask 全部なし
(それぞれを+すると両方とも)
● NSTitledWindowMask タイトルバー
● NSClosableWindowMask クローズボタン
● NSMiniaturizableWindowMask 最小化ボタン
● NSResizableWindowMask リサイズボタン
例)
Swift
タイトル、クローズボタン、最小化ボタン、最大化ボタンありの場合
var windowRect : NSRect = NSWindow.contentRectForFrameRect( 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 contentRect; contentRect = [NSWindow contentRectForFrameRect:NSMakeRect(0.0,0.0,300.0,300.0) styleMask:[myWindow styleMask]]; [info setStringValue:[NSString stringWithFormat:@"%.1f,%.1f,%.1f,%.1f",contentRect.origin.x,contentRect.origin.y,contentRect.size.width,contentRect.size.height]]; } @end
//NSWindow contentRectForFrameRect:styleMask: @IBAction func function035(sender: AnyObject) { var aWindow : NSWindow = NSWindow(contentRect: NSMakeRect(0.0, 0.0, 300, 200), 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)//表示 var windowRect : NSRect = NSWindow.contentRectForFrameRect(NSMakeRect(0.0, 0.0, 100.0, 100.0), styleMask: NSTitledWindowMask | NSClosableWindowMask | NSMiniaturizableWindowMask | NSResizableWindowMask) NSLog("windowRect %.2f,%.2f,%.2f,%,2f",Float(windowRect.origin.x) , Float(windowRect.origin.y), Float(windowRect.size.width), Float(windowRect.size.height) ) }