ios - 如何检测 RPSystemBroadcastPickerView 何时被解除?
问题描述
在应用程序中,我使用 aRPSystemBroadcastPickerView
开始系统范围的屏幕录制。我需要对用户开始屏幕记录或关闭显示的选择器视图做出反应。在这两种情况下,系统视图都会被忽略。
我假设关闭系统选择器视图将viewDidAppear
在当前显示的视图控制器上触发一个事件。这不会发生。我尝试测试是否AppDelegate
触发applicationDidBecomeActive
或applicationWillEnterForeground
- 再次没有成功(这是在用户打开控制中心时触发的)。
有没有人建议还有什么可以尝试的?
解决方案
Timer
您可以使用and间接实现它UserDefaults
。
从主应用程序启动Timer
in ViewController 并检查相应的值更改Broadcast Extension
。
class SampleHandler: RPBroadcastSampleHandler {
override func broadcastStarted(withSetupInfo setupInfo: [String : NSObject]?) {
appGroupDefaults.set(true, forKey: appGroupUserDefaultKeys.isScreenBroadcastStarted.rawValue)
}
override func broadcastFinished() {
appGroupDefaults.set(true, forKey: appGroupUserDefaultKeys.isScreenBroadcastStopped.rawValue)
}
}
推荐阅读
- angular - 区分ngFor中同名的viewChild
- scala - 点燃从 HDFS 读取的 CONFIG
- c# - Unity 视频播放器无法在我的 android 上运行
- appium - 无法在 Appium + Robot Framework 中使用 Xpath,其中 Appium 将其显示的错误消息记录为 contextId: 'multiple: true'
- user-permissions - Mojave 命令行工具的摄像头和麦克风权限
- ruby-on-rails - 如何从 link_to 帖子中调用控制器中的邮件操作
- html - 使用 Flexbox 将元素向右移动
- python - I need to get news article data. I'm using request/get from python but I got this error: 403 forbidden
- c# - 如何将 DynamicResource 的值发送到我的自定义控件 C# 后端?
- java - Jersey 过滤器中的 @Priority 注释用法