zoukankan      html  css  js  c++  java
  • [macOS]init windows position——方法二:代码实现

    新建一个文件继承自NSWindowController的类windowController。

    选择类:

        

    在windowController.swift编写代码。

    在windowDidLoad里面添加代码:

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

     运行我们可以看到:

    还有一个

    我们可以看出screenRect是屏幕尺寸!

    这时还有一个问题,new一个窗口的话会和原来的窗口完全重叠,这样是非常不友好的,怎么解决呢?

    加一段代码就ok了:

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

     再运行下看看:

  • 相关阅读:
    11
    TSP-test
    TSP-SA_TSP
    TSP-PathLength
    TSP-OutputPath
    TSP-NewAnswer
    TSP-
    TSp-dsxy2figxy
    TSP-DrawPath
    TSP-Distanse
  • 原文地址:https://www.cnblogs.com/ybw123321/p/5646255.html
Copyright © 2011-2022 走看看