macOS SwiftUI 界面大全之检测 macOS 中的屏幕尺寸与分辨率变化
macos 检测 大全 界面 SwiftUI 屏幕 变化 分辨率
2023-09-11 14:18:31 时间
实战需求
开发macOS App时我们有时需求要一种方法来检测屏幕分辨率的变化或用户何时更改显示器配置。例如,插入新的主显示器或从多屏设置返回时,我们需要调整当前打开的图像的大小。
解决方案
这个过程相当简单。您必须监听的事件是
NSApplication.didChangeScreenParametersNotification 事件。
首先,我们创建一个变量来保存这个事件。
var screenResChanged = NotificationCenter.default.publisher(for: NSApplication.didChangeScreenParametersNotification)
然后我们 使用SwiftUI 中的onReceive(_:perform:)方法来监听它。您可以将其添加到您想要监听的任何 SwiftUI 视图中
import SwiftUI
struct Balls: View {
@State var oldScreenSize = NSSize.zero
@State var currentScreenSize = NSSize.zero
@State var hasSizeChanged = false
var screenResChanged = NotificationCenter.default.publisher(for: NSApplication.didChangeScreenParametersNotification)
var body: some View {
HStack{
if (hasSizeChanged){
Text("Screen Size" + NS
相关文章
- Asp.Net Core 发布和部署( MacOS + Linux + Nginx )
- 【问题解决方案】Mac的软件更新中隐藏或开启MacOS Catalina更新提示的终端命令
- [Tools] Install npm packages globally without sudo on macOS and Linux
- macos:安装homebrew( Homebrew 4.0.10-119 / macos 12.4)
- macos安装uni-app开发环境(hbuilderx 3.6.18 / macos12.4)
- macOS Grafana Prometheus
- macos java 搭建
- m1 macOS 安装 mysql 5.7
- macOS 修改SSH配置允许root登陆
- macOS python3 opencv 图像 颜色空间
- macOS python3 matplotlib
- macOS wifi 密码 查看
- macOS 解压 rar 文件
- macOS 安装 frida
- macOS下安装Metasploit
- macOS安装wireguard
- MacOS go1.15.3 安装升级 go1.16.4