読者です 読者をやめる 読者になる 読者になる

Cocoa API解説(macOS/iOS)

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

目次

backingAlignedRect:options:

ApplicationKit NSScreen メンテ

INDEX>AppKit>NSScreen

スクリーンにしたがって整理された矩形を返します

Objective-C

- (NSRect)backingAlignedRect:(NSRect)aRect
                     options:(NSAlignmentOptions)options

Swift

func backingAlignedRect(_ aRect: NSRect,
                options options: NSAlignmentOptions) -> NSRect

解説

スクリーンにしたがって整理された矩形を返します
【NSAlignmentOptions】
AlignMinXInward
Xの最小値を内側に合わせる
 入力値x= -0.3の場合 x= -0.0が返されます。
 入力値x= 0.3の場合 x= 1.0が返されます。

AlignMinYInward
AlignMaxXInward
Xの最大値を内側に合わせる
 入力値x=0.3)width= 100.3で(AlignMinXInward | (y) |AlignMaxXInward | (y))の場合
 まずxが0.0に調整されます。その後widthが100.3が内側に調整されます。
 したがって、x= 0.0,width=100.0が返されます。
AlignMaxYInward
AlignWidthInward
AlignHeightInward

AlignMinXOutward
Xの最小値を外側に合わせる
 入力値x= -0.3の場合 x= -1.0が返されます。
 入力値x= 0.3の場合 x= 0.0が返されます。

AlignMinYOutward
AlignMaxXOutward
AlignMaxYOutward
AlignWidthOutward
AlignHeightOutward

AlignMinXNearest
AlignMinYNearest
AlignMaxXNearest
AlignMaxYNearest
AlignWidthNearest
AlignHeightNearest

AlignRectFlipped: NSAlignmentOptions { get } // pass this if the rect is in a flipped coordinate system. This allows 0.5 to be treated in a visually consistent way.

// convenience combinations
AlignAllEdgesInward
 すべての調整を内側にする
AlignAllEdgesOutward
 すべての調整を外側にする
AlignAllEdgesNearest
 すべての調整を近くにする

返り値

Objective-C

NSRect

Swift

NSRect

引数

Objective-C

(NSRect)aRect

Swift

_ aRect: NSRect

Objective-C

(NSAlignmentOptions)options

Swift

options: NSAlignmentOptions

フレームワーク

ApplicationKit

クラス

NSScreen

使用可能

10.7-

更新時のバージョン

OS X 10.10.2

参照

関連記事(外部サイト)

stackoverflow.com

例文

Objective-C

Swift

    //NSScreen backingAlignedRect
    @IBAction func function003(sender: AnyObject) {
        let theScreen : NSScreen = NSScreen.mainScreen()!
        
        //全部内側
        let aligneRect001 : NSRect = theScreen.backingAlignedRect(
                            NSMakeRect(0.3, 0.0, 100.3, 123.5),
            options: NSAlignmentOptions.AlignAllEdgesInward )
        NSLog("aligneRect001 = (x=%.1f,y=%.1f,w=%.1f,h=%.1f)",
            Float(aligneRect001.origin.x),
            Float(aligneRect001.origin.y),
            Float(aligneRect001.size.width),
            Float(aligneRect001.size.height) )
        // ->aligneRect = (x=1.0,y=0.0,w=99.0,h=123.0)
        
        //それぞれ設定
        let aligneRect002 : NSRect = theScreen.backingAlignedRect(
            NSMakeRect(0.3, 0.0, 100.3, 123.5),
            options: NSAlignmentOptions.AlignMinXInward | .AlignMinYNearest |
                .AlignMaxXInward | .AlignMaxYNearest )
        
        NSLog("aligneRect002 = (x=%.1f,y=%.1f,w=%.1f,h=%.1f)",
            Float(aligneRect002.origin.x),
            Float(aligneRect002.origin.y),
            Float(aligneRect002.size.width),
            Float(aligneRect002.size.height) )
        //(0.3, 0.0, 100.3, 123.5)の場合
        // ->aligneRect002 = (x=1.0,y=0.0,w=99.0,h=124.0)
        
        //(-0.3, 0.0, 100.3, 123.5)の場合
        // ->aligneRect002 = (x=-0.0,y=0.0,w=100.0,h=124.0)
        //(-0.8, 0.0, 100.3, 123.5)の場合
        // ->aligneRect002 = (x=-0.0,y=0.0,w=99.0,h=124.0)

        //Flip?
        let aligneRect003 : NSRect = theScreen.backingAlignedRect(
            NSMakeRect(0.3, 0.0, 100.3, 123.5),
            options: NSAlignmentOptions.AlignRectFlipped | .AlignMinXInward | .AlignMinYNearest |
                .AlignMaxXInward | .AlignMaxYNearest  )
        
        NSLog("aligneRect003 = (x=%.1f,y=%.1f,w=%.1f,h=%.1f)",
            Float(aligneRect003.origin.x),
            Float(aligneRect003.origin.y),
            Float(aligneRect003.size.width),
            Float(aligneRect003.size.height) )
        //(0.3, 0.0, 100.3, 123.5)
        //aligneRect003 = (x=1.0,y=-0.0,w=99.0,h=123.0)
        
        //
        let aligneRect004 : NSRect = theScreen.backingAlignedRect(
            NSMakeRect(0.3, 0.0, 100.3, 123.5),
            options: NSAlignmentOptions.AlignMinXInward | .AlignMinYNearest |
                .AlignMaxXInward | .AlignMaxYNearest  )
        
        NSLog("aligneRect004 = (x=%.1f,y=%.1f,w=%.1f,h=%.1f)",
            Float(aligneRect004.origin.x),
            Float(aligneRect004.origin.y),
            Float(aligneRect004.size.width),
            Float(aligneRect004.size.height) )
        //(0.3, 0.0, 100.3, 123.5)
        //aligneRect003 = (x=1.0,y=-0.0,w=99.0,h=123.0)

    }