首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何检测RPSystemBroadcastPickerView何时被窃听

如何检测RPSystemBroadcastPickerView何时被窃听
EN

Stack Overflow用户
提问于 2018-08-23 09:13:51
回答 2查看 3.4K关注 0票数 5

我正在使用RPSystemBroadcastPickerView从我的应用程序启动一个全系统的屏幕记录。RPSystemBroadcastPickerView在启动录音和一切方面完全自主,我认为只有用户才能通过显式点击按钮启动屏幕记录。

我需要知道RPSystemBroadcastPickerView何时被窃听。现在UI正在显示键盘,我想继续显示(这是一个聊天应用程序)。然而,显示广播扩展以选择一个的列表的表单显示在键盘下面。见以下图片:

这有效地防止了用户启动广播。如果我知道何时用户点击RPSystemBroadcastPickerView,我可以手动隐藏键盘在那一刻。有什么建议吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-10-14 15:08:27

我没有为此找到任何回调,但是您可以创建透明按钮,将其添加到RPSystemBroadcastPickerView.之上。当用户点击您的按钮时,您将能够隐藏键盘,而不是使用以下代码将操作转移到RPSystemBroadcastPickerView

代码语言:javascript
复制
for subview in screenSharingProviderPickerView.subviews {
    if let button = subview as? UIButton {
         button.sendActions(for: UIControlEvents.allTouchEvents)
    }
}
票数 3
EN

Stack Overflow用户

发布于 2020-09-02 11:56:16

我找到了与接受答案类似的解决方案,但您不需要创建透明按钮。

我只是在选择按钮分派表中添加额外的目标-动作对,当按下按钮时,#selector将被触发。

代码语言:javascript
复制
// picker is an instance of RPSystemBroadcastPickerView
for subview in picker.subviews {
    if let button = subview as? UIButton {
        button.addTarget(self, action: #selector(pickerAction), for: .touchUpInside)
    }
}

// You can also accept _ sender: UIButton as parameter, if you need to.
@objc func pickerAction() {
    // called when user press on RPSystemBroadcastPickerView
}

注意:请记住,如果Apple将来更改此视图的层次结构,您可能也需要更新应用程序。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51982235

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档