Enable right-click context menus on iPadOS

This commit is contained in:
Cameron Gutman
2020-11-14 15:57:16 -06:00
parent dc9b5b7c96
commit 78f2b8ac47
4 changed files with 52 additions and 0 deletions

View File

@@ -46,6 +46,13 @@ static UIImage* noImage;
[_appImage setImage:noImage];
[self addSubview:_appImage];
#if !TARGET_OS_TV
if (@available(iOS 13.0, *)) {
UIContextMenuInteraction* rightClickInteraction = [[UIContextMenuInteraction alloc] initWithDelegate:self];
[self addInteraction:rightClickInteraction];
}
#endif
UILongPressGestureRecognizer* longPressRecognizer = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(appLongClicked:)];
[self addGestureRecognizer:longPressRecognizer];
@@ -79,11 +86,26 @@ static UIImage* noImage;
}
- (void) appLongClicked:(UILongPressGestureRecognizer*)gesture {
#if !TARGET_OS_TV
if (@available(iOS 13.0, *)) {
// contextMenuInteraction will handle this
return;
}
#endif
if (gesture.state == UIGestureRecognizerStateBegan) {
[_callback appLongClicked:_app view:self];
}
}
#if !TARGET_OS_TV
- (UIContextMenuConfiguration *)contextMenuInteraction:(UIContextMenuInteraction *)interaction
configurationForMenuAtLocation:(CGPoint)location {
[_callback appLongClicked:_app view:self];
return nil;
}
#endif
- (void) updateAppImage {
if (_appOverlay != nil) {
[_appOverlay removeFromSuperview];