Use UIControl.performPrimaryAction instead of SPI on iOS 17.4

This commit is contained in:
Shadowfacts 2024-02-28 12:20:55 -05:00
parent d37c5dde2f
commit 8a3acc6889
1 changed files with 7 additions and 3 deletions

View File

@ -332,9 +332,13 @@ class CustomAlertActionsView: UIControl {
if action.handler == nil,
case .menu(_) = action.style,
let interaction = button.contextMenuInteraction {
let selector = NSSelectorFromString(["Location:", "At", "Menu", "present", "_"].reversed().joined())
if interaction.responds(to: selector) {
interaction.perform(selector, with: recognizer.location(in: button))
if #available(iOS 17.4, *) {
button.performPrimaryAction()
} else {
let selector = NSSelectorFromString(["Location:", "At", "Menu", "present", "_"].reversed().joined())
if interaction.responds(to: selector) {
interaction.perform(selector, with: recognizer.location(in: button))
}
}
} else {
action.handler?()