You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Apple Silicon双显示器多桌面SpriteKit窗口动画冻结问题

SpriteKit多窗口跨桌面动画停止问题(Apple Silicon平台)

使用搭载Apple M2 Pro芯片的2023款Mac mini并连接两台显示器时,会出现以下异常:当SpriteKit应用的两个窗口处于不同桌面时,其中一个窗口的动画无法正常运行。

问题复现步骤

  • 在Xcode中创建新的macOS项目
  • 选择基于SpriteKit技术栈的示例Game项目
  • 编辑GameScene.swift中的淡入淡出时长参数,让动画节点的持续时间延长(例如设置为15秒)
  • 在AppDelegate.applicationDidFinishLaunching方法中添加以下代码,实例化第二个窗口:
    let mainStoryboard = NSStoryboard.init(name: NSStoryboard.Name("Main"), bundle: nil)
    if let newWindow = mainStoryboard.instantiateInitialController() as? NSWindowController {
        newWindow.showWindow(self)
    }
    
  • 运行应用:
    • 若两个窗口处于同一桌面,动画可正常运行
    • 若两个窗口分属不同桌面,其中一个桌面的窗口动画会停止,尽管SKView显示的帧率数值正常

补充信息

  • 仅为Intel处理器编译、通过Rosetta在Apple Silicon设备上运行时,该问题不会出现
  • 此问题在macOS 13和macOS 14系统中均存在,已通过Feedback Assistant提交报告,现寻求可行的解决办法

内容的提问来源于stack exchange,提问作者sv_lane

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 17:36:11