Щелкните правой кнопкой мыши в 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)