[macOS]init windows position——方法二:代碼實現

新建一個文件繼承自NSWindowController的類windowController。swift

選擇類:ui

    

在windowController.swift編寫代碼。code

在windowDidLoad裏面添加代碼:blog

if let window = window, screen = window.screen {
            let offsetFromLeftOfScreen: CGFloat = 20
            let offsetFromTopOfScreen: CGFloat = 20
            let screenRect = screen.visibleFrame
            print(screenRect)
            let newOriginY = CGRectGetMaxY(screenRect) - window.frame.height - offsetFromTopOfScreen
            //設置窗口左下角座標
            window.setFrameOrigin(NSPoint(x: offsetFromLeftOfScreen, y: newOriginY))
        }

 運行咱們能夠看到:
繼承

還有一個it

咱們能夠看出screenRect是屏幕尺寸!class

這時還有一個問題,new一個窗口的話會和原來的窗口徹底重疊,這樣是很是不友好的,怎麼解決呢?require

加一段代碼就ok了:im

required init?(coder: NSCoder) {
        super.init(coder: coder)
        //設置新窗口彈出瀑布式
        shouldCascadeWindows = true
    }

 再運行下看看:db

相關文章
相關標籤/搜索