Ios 如何检测何时点击RPSystemBroadcastPickerView

Ios 如何检测何时点击RPSystemBroadcastPickerView,ios,swift,replaykit,rpsystembroadcastpickerview,Ios,Swift,Replaykit,Rpsystembroadcastpickerview,我正在使用RPSystemBroadcastPickerView从我的应用程序启动系统全屏录制。RPSystemBroadcastPickerView在开始录制和所有操作时完全自主,我想这是有意义的-只有用户可以通过显式点击按钮开始屏幕录制 我需要知道何时点击了RPSystemBroadcastPickerView。现在用户界面显示的是键盘,我想继续显示(这是一个聊天应用程序)。但是,显示要选择的广播扩展列表的表单显示在键盘下。见下图: 这有效地防止用户开始广播。如果我知道用户何时点击了RPS

我正在使用
RPSystemBroadcastPickerView
从我的应用程序启动系统全屏录制。
RPSystemBroadcastPickerView
在开始录制和所有操作时完全自主,我想这是有意义的-只有用户可以通过显式点击按钮开始屏幕录制

我需要知道何时点击了
RPSystemBroadcastPickerView
。现在用户界面显示的是键盘,我想继续显示(这是一个聊天应用程序)。但是,显示要选择的广播扩展列表的表单显示在键盘下。见下图:


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

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

for subview in screenSharingProviderPickerView.subviews {
    if let button = subview as? UIButton {
         button.sendActions(for: UIControlEvents.allTouchEvents)
    }
}

我找到了与公认答案类似的解决方案,但您不需要创建透明按钮。
我只是在选择器按钮分派表中添加了额外的目标操作对,当按下按钮时,
#选择器将被触发

/// picker is an instance of RPSystemBroadcastPickerView
for subviews in picker.subviews {
    if let button = subviews 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将来更改此视图的层次结构,您可能还需要更新应用程序


真是难看的解决方法,但它有效。。我想现在可以用了。。谢谢@MilanNosáľHi,我正在做同样的RPSystemBroadcastPickerView按钮动作。但是,我录制的视频会自动保存在照相胶卷中。如何从我们的应用程序中检测已完成的屏幕录制,以及如何在我们的应用程序中显示录制的视频?有什么办法处理这个问题吗?你能指引我吗?你能帮我吗??