backingAlignedRect:options:
スクリーンにしたがって整理された矩形を返します
- (NSRect)backingAlignedRect:(NSRect)aRect options:(NSAlignmentOptions)optionsSwift
open func backingAlignedRect(_ rect: NSRect, options: AlignmentOptions = []) -> 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
alignAllEdgesInward
すべての調整を内側にする
alignAllEdgesOutward
すべての調整を外側にする
alignAllEdgesNearest
すべての調整を近くにする
返り値
NSRect
Swift
AlignmentOptions
引数
(NSRect)aRect
Swift
_ aRect: NSRect
(NSAlignmentOptions)options
Swift
options: NSAlignmentOptions
フレームワーク
ApplicationKit
クラス
NSScreen
使用可能
10.7-
更新時のバージョン
OS X 10.14.5
Swinft4.0
参照
関連記事(外部サイト)
例文
Swift4.0
@IBAction func function013(_ sender: Any) { let screenArray : [NSScreen] = NSScreen.screens for theScreen in screenArray { //全部内側 let aligneRect001 : NSRect = theScreen.backingAlignedRect( NSMakeRect(0.3, 0.0, 100.3, 123.5), options: AlignmentOptions.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) ) //display1 aligneRect001 = (x=1.0,y=0.0,w=99.0,h=123.0) //display2 aligneRect001 = (x=0.5,y=0.0,w=100.0,h=123.5) <-Retina //display3 aligneRect001 = (x=1.0,y=0.0,w=99.0,h=123.0) //それぞれ設定 let aligneOption002: AlignmentOptions = [.alignMinXInward, .alignMaxXInward, .alignMinYInward, .alignMaxYInward] let aligneRect002 : NSRect = theScreen.backingAlignedRect( NSMakeRect(0.3, 0.0, 100.3, 123.5), options: aligneOption002 ) 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)の場合 //display1 aligneRect002 = (x=1.0,y=0.0,w=99.0,h=123.0) //display2 aligneRect002 = (x=0.5,y=0.0,w=100.0,h=123.5) //display3 aligneRect002 = (x=1.0,y=0.0,w=99.0,h=123.0) //Flip? let aligneOption003: AlignmentOptions = [.alignMinXInward, .alignMaxXInward, .alignMinYInward, .alignMaxYInward] let aligneRect003 : NSRect = theScreen.backingAlignedRect( NSMakeRect(0.3, 0.0, 100.3, 123.5), options: aligneOption003 ) 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) //display1 aligneRect003 = (x=1.0,y=0.0,w=99.0,h=123.0) //display2 aligneRect003 = (x=0.5,y=0.0,w=100.0,h=123.5) //display3 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: [AlignmentOptions.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) //display1 aligneRect004 = (x=1.0,y=0.0,w=99.0,h=124.0) //display2 aligneRect004 = (x=0.5,y=0.0,w=100.0,h=123.5) //display3 aligneRect004 = (x=1.0,y=0.0,w=99.0,h=124.0) } }
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) }