swift - 您如何以编程方式快速获取当前的 Mac 窗口位置/原点
问题描述
我的想法是在 viewController 中放置一个函数,但是当我调用它时,x 和 y 都为 0 而不是窗口位置,显然我在某个地方搞砸了任何想法?
class ViewController: NSViewController {
func getCoordinate() {
let x = self.view.frame.origin.x
let y = self.view.frame.origin.y
print (x)
print (y)
}
}
解决方案
你需要得到view.window.frame
, 而不是view.frame
.
if let window = view.window {
print(window.frame.origin)
} else {
print("The view is not in a window yet!")
}
请记住,只有在view
添加到窗口后才能执行此操作,例如在viewDidAppear
.
view
' 框架相对于'view
超级视图的原点,而不是屏幕的原点。恰好在这种情况下,view
恰好位于其父视图的原点(无论是什么视图),因此是 (0, 0)。
推荐阅读
- python - 使用 Numpy 的余弦相似度函数
- mysql - 替换phpmyadmin中以开头和结尾的字符串
- node.js - StaticInjectorError(AppModule)[AppComponent -> DataService]
- php - 多个应用程序,同一域下的多个应用程序版本。如何配置 apache 服务器、路由和相对路径以使其工作?
- r - 改变sclass图中符号的颜色
- node.js - VS Code 没有为在 Docker 容器中运行的 Node 应用程序打断点
- kubernetes - Prometheus Adapter 清空自定义指标项
- javascript - 如何使用 replace() 方法更改 Javascript 中字符串的所有字符?
- jenkins - 在 Jenkins 中创建屏蔽密码的 Groovy 脚本
- c - 如果从标准输入读取,刷新标准输出似乎没有效果