Mac Catalyst匹配iPad缩放时接口返回.iPadOS是否符合预期
结论
该表现是苹果官方设计的预期正常行为,不属于系统Bug。
对应逻辑说明
Mac Catalyst提供的两个界面适配选项底层运行环境存在本质差异,设备标识类API的返回值是刻意设计的结果:
- 启用「Scale Interface to Match iPad」选项时,应用运行在iPad兼容模拟层中,系统会将App的整个运行环境对齐iPad端逻辑,设计目的是降低适配成本,让开发者无需额外修改即可将iPad版App缩放运行在Mac上。该场景下调用
UIDevice.current.userInterfaceIdiom返回.iPadOS完全符合模式设计规则。
- 切换为「Optimize Interface for Mac」选项时,应用进入Mac原生优化的Catalyst运行模式,系统会识别运行环境为Mac端,此时调用
UIDevice.current.userInterfaceIdiom会返回Mac端对应的枚举值。该模式下App会自动匹配Mac端的控件尺寸、交互规范与窗口逻辑。
开发提示:如果需要在iPad缩放模式下也识别实际运行的Mac硬件环境,不要依赖
userInterfaceIdiom做判断,可通过ProcessInfo的运行环境标识检测当前是否为Mac Catalyst环境。
内容的提问来源于stack exchange,提问作者Jake Chasan
相关产品推荐
相关产品推荐

