macOS/iOS API解説

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

目次

contentRectForFrameRect:styleMask:

INDEX>AppKit> NSWindow

フレームからスタイルを引いた内容だけの矩形を返します

Objective-C

+ (NSRect)contentRectForFrameRect:(NSRect)windowFrame
                        styleMask:(NSUInteger)windowStyle

Swift

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)

f:id:jjj777:20150301125211p:plain

返り値

内容の範囲
Objective-C

( NSRect )

Swift


引数

範囲
Objective-C

( NSRect )frameRect

Swift


スタイルマスク
Objective-C

( unsigned int )aStyle

Swift


フレームワーク

ApplicationKit

クラス

NSWindow

使用可能

10.0

参照


frameRectForContentRect:styleMask: - Cocoa API解説(iOS/OS X)

関連記事(外部サイト)

更新時バージョン

10.10


例文

Objective-C

#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


Swift

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