Щелкните правой кнопкой мыши в UIKit для Mac

У меня есть приложение для iPad, которое я очень легко портировал на Mac.

Я использую сенсорный начался / переехал / закончился, и он хорошо переносится, хотя я бы хотел щелкнуть правой кнопкой мыши на моем iOS-приложении на Mac.

Как зарегистрировать правый клик в приложении UIKit для Mac?

3 ответа

Я не думаю, что вы можете добавить произвольные жесты правой кнопкой мыши, но если все, что вам нужно, это щелкнуть правой кнопкой мыши, чтобы отобразить контекстное меню, то новый UIContextMenuInteraction покрыл тебя

let interaction = UIContextMenuInteraction(delegate: self)
someView.addInteraction(interaction)

... а затем реализовать UIContextMenuInteractionDelegate способы настройки и отображения контекстного меню. В macOS "взаимодействие с контекстным меню" выполняется по щелчку правой кнопкой мыши, и контекстное меню отображается как стандартное всплывающее меню macOS.

UIContextMenuInteraction на данный момент документации довольно мало, поэтому этот блог полезен, если вам это нужно: https://kylebashour.com/posts/ios-13-context-menus

Основываясь на ответе Адама, если все, что вам нужно, это фиксировать щелчки правой кнопкой мыши в представлении, будет работать следующее:

      class Bubble: UIView, UIContextMenuInteractionDelegate {
    init() {
        super.init(frame: CGRect.zero)
        addInteraction(UIContextMenuInteraction(delegate: self))
    }

// UIContextMenuInteractionDelegate ================================================================
    public func contextMenuInteraction(_ interaction: UIContextMenuInteraction, configurationForMenuAtLocation location: CGPoint) -> UIContextMenuConfiguration? {
        // Do Stuff
        return nil
    }
}

Следуй этим шагам:
1. Настройте распознаватель жестов типа NSObject.
2. Позвоните rightMouseDown функция с событием, которое вы хотите выполнить в качестве аргумента, как gestureRecognizerObject.rightMouseButton(event)

Другие вопросы по тегам