如何强制将 iMessage 扩展视图从 .expanded 转换为 .compact?

How to force transition of iMessage Extension view from .expanded to .compact?

我在iMessage Extension 的storyboard 中做了一个简单的collection view。 在 select 收集一个项目时,我正在创建一个 MSMessage() 对象并将其插入保存的对话中。虽然这在 iMessage 视图处于 .compact 模式时不是问题,但在 .expanded 模式下存在问题。当 MSMessage() 对象被正确插入并且它的预览在键盘的工具栏附件中可用时,我需要明确地将视图从 .expanded 更改为 .compact 以通过按右上角栏上的箭头按钮来查看预览按钮 。当我以编程方式 select 集合视图中的一个项目时,请建议一种将视图从 .expanded 更改为 .compact 的方法。

在您的 MSMessagesAppViewController 上拨打 requestPresentationStyle(_:) 进行转换。

请注意,在某些情况下系统可能不允许您这样做,such as immediately upon your app activating。一般来说,您应该按照您的计划,仅在用户执行操作时发出请求。来自方法的文档:

the user should have ultimate control over the extension’s presentation style.