我的 swift iOS 应用程序有一个带键盘显示的事件文本字段。 每次用户点击键盘上的返回键时,我都会调用
SKStoreReviewController.requestReview()
这听起来可能有点过分,但是一旦用户给出了评论,上面的声明就不会做任何事情,所以我认为我的做法是正确的。
问题是在较小的屏幕设备(iPhone 5 等)上,显示的 SKStoreReviewController 按钮隐藏在键盘下方。
所以用户会因为无法关闭 SKStoreReviewController 而陷入困境。 我不想为用户添加键盘隐藏按钮。
我如何知道 SKStoreReviewController
何时显示,以便我可以编程方式隐藏键盘?
最佳答案
您无法判断它是否正在显示。
您可以阅读有关SKStoreReviewController
的文档 here , 仅显示 requestReview()您用来调用它的函数。
但是,如果您想深入挖掘,我提供了以下屏幕截图,其中显示了显示请求时Debug View Hierarchy 的样子。
这告诉您的是,您无法尝试通过 presentedViewController
等属性深入了解屏幕是否正在显示。
通常,如果您要呈现一个 UIAlertController
或与此相关的任何 UI 元素,您会看到 UI 部分堆叠在一起形成它,这表明您可以访问关联的属性以找出什么正在呈现。使用此类时,不会提供任何内容,因此您的应用不会注意到正在发生的事情。
以下屏幕截图说明了当屏幕上有多个元素时 View 层次结构的样子:
正如 Apple 在类文档中提到的那样,您需要开发自己的逻辑来在它不会呈现您当前遇到的问题时呈现它。
关于ios - 隐藏在键盘下的 SKStoreReviewController 按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46132247/