найти положение приложения относительно точки экрана macOS swift

#swift #macos

#swift #macos

Вопрос:

Пытаюсь найти текущее положение приложения в координатах X Y. Например: приложение имеет начальную точку (X, Y) высоту, ширину. Как найти его начальную точку как CGPoint или значения X Y на экране?

Текущая попытка с view.bounds :

 class ViewController: NSViewController {

var testPoint = CGPoint.zero;

override func viewDidLoad() {
    super.viewDidLoad()

    // Do any additional setup after loading the view.
    //testPoint = view.bounds.height //rect
    //if possible following:
   //testPoint =  CGPoint(x: view.window?.frame.origin.x , y: view.window?.frame.origin.y) 
    print(testPoint)
  }
}
  

Ответ №1:

В viewWillAppear или viewDidAppear спросите window view у origin своего frame

 override func viewWillAppear() {
    super.viewWillAppear()
    print(view.window?.frame.origin)
}
  

Комментарии:

1. Поскольку view.window?.frame.origin для viewDidLoad равно нулю, есть ли какой-либо способ получить начало координат / что-либо для координат x, y динамически при таком событии, как нажатие кнопки?

2. Что не так с viewWillAppear ? Вы можете получить точку всякий раз, когда окно доступно.

Ответ №2:

Вы должны использовать NSWindow API, в частности NSWindow.FrameRect.