Cocoa API解説(macOS/iOS)

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

目次

initWithContentRect:styleMask:backing:defer:screen:

INDEX>AppKit> NSWindow

スクリーンを指定してウインドウを初期化して返します

Objective-C

- (instancetype)initWithContentRect:(NSRect)contentRect
                          styleMask:(NSUInteger)windowStyle
                            backing:(NSBackingStoreType)bufferingType
                              defer:(BOOL)deferCreation
                             screen:(NSScreen *)screen

Swift

convenience init(contentRect contentRect: NSRect,
       styleMask windowStyle: Int,
         backing bufferingType: NSBackingStoreType,
           defer deferCreation: Bool,
          screen screen: NSScreen?)

解説

スクリーンを指定してウインドウを初期化して返します。
【contentRect】initWithContentRect:styleMask:backing:defer:を見てください
【styleMask】initWithContentRect:styleMask:backing:defer:を見てください
ウインドウスタイル
● NSBorderlessWindowMask 全部なし
(それぞれを+すると両方とも)
● NSTitledWindowMask タイトルバー
f:id:jjj777:20150218071401p:plain
● NSClosableWindowMask クローズボタン
f:id:jjj777:20150218071541p:plain
● NSMiniaturizableWindowMask 最小化ボタン
f:id:jjj777:20150218071710p:plain
● NSResizableWindowMask リサイズボタン
f:id:jjj777:20150218071843p:plain

【flag】initWithContentRect:styleMask:backing:defer:を見てください
【aScreen】ウインドウを作成するスクリーンです。
nilならメインスクリーンとなります。

返り値

Objective-C

instancetype

Swift

NSWindow

ウインドウオブジェクト

引数

Objective-C

( NSRect )contentRect

Swift

contentRect contentRect: NSRect

ウインドウの位置とサイズ
【contentRect】場所とサイズを指定します。

Objective-C

( unsigned int )aStyle

Swift

styleMask windowStyle: Int,

ウインドウスタイル
【styleMask】ウインドウのスタイル
● NSBorderlessWindowMask 全部なし
(それぞれを+すると両方とも)
● NSTitledWindowMask タイトルバー
f:id:jjj777:20150218071401p:plain
● NSClosableWindowMask クローズボタン
f:id:jjj777:20150218071541p:plain
● NSMiniaturizableWindowMask 最小化ボタン
f:id:jjj777:20150218071710p:plain
● NSResizableWindowMask リサイズボタン
f:id:jjj777:20150218071843p:plain

枠の無いウインドウは、ウインドウバーを表示せず、内容だけの表示となるので、ウインドウのドラッグも自分で実装しないといけません。

Objective-C

( NSBackingStoreType )backingType

Swift

backing bufferingType: NSBackingStoreType,

【backingType】
● NSBackingStoreRetained
● NSBackingStoreNonretained
● NSBackingStoreBuffered

Objective-C

( BOOL )flag

Swift

defer deferCreation: Bool

【flag】
YESをセットするとスクリーンにウインドウが表示されるまでウインドウを作りません。
ウインドウ内のビューも作らないので、起動時間が早くなり、メモリも使用しません。

Objective-C

( NSScreen * )aScreen

Swift

NSScreen 

スクリーン

フレームワーク

ApplicationKit

クラス

NSWindow

使用可能

10.0

参照


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


oneShot - Cocoa API解説(iOS/OS X)


title - Cocoa API解説(iOS/OS X)

関連記事(外部サイト)

例文

Objective-C

Swift

//NSWindow initWithContentRect:styleMask:backing:defer:screen
    @IBAction func function002(sender: AnyObject) {
        var window : 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(window) //ウインドウを保持するための入れるに追加。アプリ終了時に配列は破棄
        window.center()//ウインドウをスクリーンんの中心に
        window.title = "ウインドウタイトル"//タイトル設定
        window.orderFront(self)//前面に
        window.makeKeyAndOrderFront(self)//表示
    }

更新時のバージョン

OS X 10.10