Cocoa API解説(macOS/iOS)

iOS , Mac アプリケーション開発のために使われる主要フレームワークの日本語情報です。

目次

frameRectForContentRect:styleMask:

INDEX>AppKit> NSWindow

内容とスタイルを合計した矩形を返します

Objective-C

+(NSRect)frameRectForContentRect:(NSRect)contentRect:
         styleMask:(unsigned int)aStyle:

Swift


解説

内容とスタイルを合計した矩形を返します。
タイトルバーがあれば、高さが増えます
例えば、通常タイトルバーは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)

f:id:jjj777:20150301130350p:plain

返り値

Objective-C

( NSRect )

Swift

矩形

引数

内容の矩形
Objective-C

( NSRect )contentRect

Swift


スタイル
Objective-C

( unsigned int )aStyle

Swift


フレームワーク

ApplicationKit

クラス

NSWindow

使用可能

10.0

参照

contentRectForFrameRect:styleMask


Window Style Masks - Cocoa API解説(iOS/OS X)

関連記事(外部サイト)

更新時バージョン

10.10

例文

Objective-C

#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

Swift

    //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)//表示
        
        
        
    }