#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.