Mac scenephase调研

Posted moooooonlight

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mac scenephase调研相关的知识,希望对你有一定的参考价值。

场景 MacOs IOS(iPhone 14 pro)
可见焦点 active active
全屏 active NA
可见非焦点自由窗口 active NA
可见分屏窗口 active NA
部分被遮挡 active NA
完全被遮挡 active NA
被放在第二个窗口 active NA
锁屏 状态不变 background
登陆第二个用户桌面 状态不变 NA
最小化滑动操作过程 NA inactive
多任务中心 NA inactive
最小化 inactive background
隐藏 background NA

隐藏和最小化的区别在于:

  • “隐藏”是 App 级别的操作,把当前 App 的所有窗口都收起来,而“最小化”,是窗口级别的操作,只把当前窗口收起来。
  • 收入的位置也不同,“隐藏”会把 App 都收入 Dock 上的程序图标内,而“最小化”会把窗口放到 Dock 的最右边

background在MacOs和IOS上表现也有不同:

  • MacOs的background的timer依旧在运行
  • IOS的background的timer会停止

SwiftUI:onChange(of:scenePhase)没有触发

【中文标题】SwiftUI:onChange(of:scenePhase)没有触发【英文标题】:SwiftUI : onChange(of: scenePhase) is not firing 【发布时间】:2021-10-18 08:57:24 【问题描述】:

我正在使用 SwiftUI 开发一个项目,但在接收应用程序进入前台和后台等事件时遇到问题。这些事件根本没有触发。请参考下面的代码。

import SwiftUI

@main
struct testApp: App 
    
    @Environment(\.scenePhase) private var scenePhase
    
    var body: some Scene 
        WindowGroup 
            ContentView()
                .onChange(of: scenePhase)  phase in
                    if phase == .background 
                        print("background")
                    
                    if phase == .active 
                        print("active")
                    
                    if phase == .inactive 
                        print("inactive")
                    
                    
                
        
    


import SwiftUI

struct ContentView: View 
    var body: some View 
        Text("Hello, world!").padding()
    

Xcode 版本为 12.5,在 iOS 14.0 - 14.5 模拟器上运行。我在 iOS 15 上试过,效果很好。这是 iOS 14 中的某种错误吗?

我对开发 iPhone 应用程序非常陌生。任何帮助将不胜感激。

【问题讨论】:

这是否回答了您的问题***.com/a/62840614/12299030? 感谢您的评论!我尝试了几乎所有可以在 Stack Overflow 上找到的解决方案,包括您刚刚发布的链接,但仍然没有运气......整天都在这个问题上...... 【参考方案1】:

您可以将 .onReceive() 与您需要的通知发布者一起使用。

【讨论】:

以上是关于Mac scenephase调研的主要内容,如果未能解决你的问题,请参考以下文章

Mac如何远程连接Ubuntu主机ssh连接|Mac通过ssh远程连接Ubuntu主机

视频剪辑软件调研

结合工程实践选题调研分析同类软件产品

Mac安装Eclipse Paho遇到的问题

腾讯云Mac图床插件

苹果电脑从mac系统切换到 windows系统,原来的mac系统的东西还在吗?