diff --git a/ios/IosContextMenu.xcodeproj/project.pbxproj b/ios/IosContextMenu.xcodeproj/project.pbxproj index 17821bf..755ef59 100644 --- a/ios/IosContextMenu.xcodeproj/project.pbxproj +++ b/ios/IosContextMenu.xcodeproj/project.pbxproj @@ -6,6 +6,21 @@ objectVersion = 46; objects = { +/* Begin PBXBuildFile section */ + 88C863CA25451D00006F32D6 /* UIMenuOptions+Helpers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 88C863BA25451D00006F32D6 /* UIMenuOptions+Helpers.swift */; }; + 88C863CB25451D00006F32D6 /* Encodable+Helpers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 88C863BB25451D00006F32D6 /* Encodable+Helpers.swift */; }; + 88C863CC25451D00006F32D6 /* UIMenuElement+Helpers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 88C863BC25451D00006F32D6 /* UIMenuElement+Helpers.swift */; }; + 88C863CD25451D00006F32D6 /* RCTSwiftLog.m in Sources */ = {isa = PBXBuildFile; fileRef = 88C863BF25451D00006F32D6 /* RCTSwiftLog.m */; }; + 88C863CE25451D00006F32D6 /* RCTLog.swift in Sources */ = {isa = PBXBuildFile; fileRef = 88C863C025451D00006F32D6 /* RCTLog.swift */; }; + 88C863CF25451D00006F32D6 /* RCTMenuActionItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 88C863C325451D00006F32D6 /* RCTMenuActionItem.swift */; }; + 88C863D025451D00006F32D6 /* RCTContextMenuManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 88C863C425451D00006F32D6 /* RCTContextMenuManager.m */; }; + 88C863D125451D00006F32D6 /* RCTMenuElement.swift in Sources */ = {isa = PBXBuildFile; fileRef = 88C863C525451D00006F32D6 /* RCTMenuElement.swift */; }; + 88C863D225451D00006F32D6 /* RCTContextMenuView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 88C863C625451D00006F32D6 /* RCTContextMenuView.swift */; }; + 88C863D325451D00006F32D6 /* RCTMenuImageType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 88C863C725451D00006F32D6 /* RCTMenuImageType.swift */; }; + 88C863D425451D00006F32D6 /* RCTContextMenuManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 88C863C825451D00006F32D6 /* RCTContextMenuManager.swift */; }; + 88C863D525451D00006F32D6 /* RCTMenuItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 88C863C925451D00006F32D6 /* RCTMenuItem.swift */; }; +/* End PBXBuildFile section */ + /* Begin PBXCopyFilesBuildPhase section */ 58B511D91A9E6C8500147676 /* CopyFiles */ = { isa = PBXCopyFilesBuildPhase; @@ -20,17 +35,20 @@ /* Begin PBXFileReference section */ 134814201AA4EA6300B7C361 /* libIosContextMenu.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libIosContextMenu.a; sourceTree = BUILT_PRODUCTS_DIR; }; - 88C8637C2540FBCB006F32D6 /* IosContextMenu-Bridging-Header.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "IosContextMenu-Bridging-Header.h"; sourceTree = ""; }; - 88C8639F25414966006F32D6 /* RCTSwiftLog.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = RCTSwiftLog.m; sourceTree = ""; }; - 88C863A025414966006F32D6 /* RCTLog.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RCTLog.swift; sourceTree = ""; }; - 88C863A125414966006F32D6 /* RCTSwiftLog.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RCTSwiftLog.h; sourceTree = ""; }; - 88C863A325414966006F32D6 /* RCTMenuActionItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RCTMenuActionItem.swift; sourceTree = ""; }; - 88C863A425414966006F32D6 /* RCTContextMenuManager.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = RCTContextMenuManager.m; sourceTree = ""; }; - 88C863A525414966006F32D6 /* RCTContextMenuView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RCTContextMenuView.swift; sourceTree = ""; }; - 88C863A625414966006F32D6 /* RCTContextMenuManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RCTContextMenuManager.swift; sourceTree = ""; }; - 88C863A825414966006F32D6 /* UIMenuOptions+Helpers.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIMenuOptions+Helpers.swift"; sourceTree = ""; }; - 88C863A925414966006F32D6 /* Encodable+Helpers.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Encodable+Helpers.swift"; sourceTree = ""; }; - 88C863AA25414966006F32D6 /* UIMenuElement+Helpers.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIMenuElement+Helpers.swift"; sourceTree = ""; }; + 88C863B825451D00006F32D6 /* IosContextMenu-Bridging-Header.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "IosContextMenu-Bridging-Header.h"; sourceTree = ""; }; + 88C863BA25451D00006F32D6 /* UIMenuOptions+Helpers.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "UIMenuOptions+Helpers.swift"; sourceTree = ""; }; + 88C863BB25451D00006F32D6 /* Encodable+Helpers.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "Encodable+Helpers.swift"; sourceTree = ""; }; + 88C863BC25451D00006F32D6 /* UIMenuElement+Helpers.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "UIMenuElement+Helpers.swift"; sourceTree = ""; }; + 88C863BF25451D00006F32D6 /* RCTSwiftLog.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTSwiftLog.m; sourceTree = ""; }; + 88C863C025451D00006F32D6 /* RCTLog.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RCTLog.swift; sourceTree = ""; }; + 88C863C125451D00006F32D6 /* RCTSwiftLog.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTSwiftLog.h; sourceTree = ""; }; + 88C863C325451D00006F32D6 /* RCTMenuActionItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RCTMenuActionItem.swift; sourceTree = ""; }; + 88C863C425451D00006F32D6 /* RCTContextMenuManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTContextMenuManager.m; sourceTree = ""; }; + 88C863C525451D00006F32D6 /* RCTMenuElement.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RCTMenuElement.swift; sourceTree = ""; }; + 88C863C625451D00006F32D6 /* RCTContextMenuView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RCTContextMenuView.swift; sourceTree = ""; }; + 88C863C725451D00006F32D6 /* RCTMenuImageType.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RCTMenuImageType.swift; sourceTree = ""; }; + 88C863C825451D00006F32D6 /* RCTContextMenuManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RCTContextMenuManager.swift; sourceTree = ""; }; + 88C863C925451D00006F32D6 /* RCTMenuItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RCTMenuItem.swift; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -55,61 +73,64 @@ 58B511D21A9E6C8500147676 = { isa = PBXGroup; children = ( - 88C863792540FB97006F32D6 /* src_library */, + 88C863B725451D00006F32D6 /* src_library */, 134814211AA4EA7D00B7C361 /* Products */, ); sourceTree = ""; }; - 88C863792540FB97006F32D6 /* src_library */ = { + 88C863B725451D00006F32D6 /* src_library */ = { isa = PBXGroup; children = ( - 88C863A725414966006F32D6 /* Extensions */, - 88C8639D25414966006F32D6 /* React Native */, - 88C8637C2540FBCB006F32D6 /* IosContextMenu-Bridging-Header.h */, + 88C863B825451D00006F32D6 /* IosContextMenu-Bridging-Header.h */, + 88C863B925451D00006F32D6 /* Extensions */, + 88C863BD25451D00006F32D6 /* React Native */, ); path = src_library; sourceTree = ""; }; - 88C8639D25414966006F32D6 /* React Native */ = { + 88C863B925451D00006F32D6 /* Extensions */ = { isa = PBXGroup; children = ( - 88C8639E25414966006F32D6 /* RCTSwiftLog */, - 88C863A225414966006F32D6 /* RCTContextMenu */, + 88C863BA25451D00006F32D6 /* UIMenuOptions+Helpers.swift */, + 88C863BB25451D00006F32D6 /* Encodable+Helpers.swift */, + 88C863BC25451D00006F32D6 /* UIMenuElement+Helpers.swift */, + ); + path = Extensions; + sourceTree = ""; + }; + 88C863BD25451D00006F32D6 /* React Native */ = { + isa = PBXGroup; + children = ( + 88C863BE25451D00006F32D6 /* RCTSwiftLog */, + 88C863C225451D00006F32D6 /* RCTContextMenu */, ); path = "React Native"; sourceTree = ""; }; - 88C8639E25414966006F32D6 /* RCTSwiftLog */ = { + 88C863BE25451D00006F32D6 /* RCTSwiftLog */ = { isa = PBXGroup; children = ( - 88C8639F25414966006F32D6 /* RCTSwiftLog.m */, - 88C863A025414966006F32D6 /* RCTLog.swift */, - 88C863A125414966006F32D6 /* RCTSwiftLog.h */, + 88C863BF25451D00006F32D6 /* RCTSwiftLog.m */, + 88C863C025451D00006F32D6 /* RCTLog.swift */, + 88C863C125451D00006F32D6 /* RCTSwiftLog.h */, ); path = RCTSwiftLog; sourceTree = ""; }; - 88C863A225414966006F32D6 /* RCTContextMenu */ = { + 88C863C225451D00006F32D6 /* RCTContextMenu */ = { isa = PBXGroup; children = ( - 88C863A325414966006F32D6 /* RCTMenuActionItem.swift */, - 88C863A425414966006F32D6 /* RCTContextMenuManager.m */, - 88C863A525414966006F32D6 /* RCTContextMenuView.swift */, - 88C863A625414966006F32D6 /* RCTContextMenuManager.swift */, + 88C863C325451D00006F32D6 /* RCTMenuActionItem.swift */, + 88C863C425451D00006F32D6 /* RCTContextMenuManager.m */, + 88C863C525451D00006F32D6 /* RCTMenuElement.swift */, + 88C863C625451D00006F32D6 /* RCTContextMenuView.swift */, + 88C863C725451D00006F32D6 /* RCTMenuImageType.swift */, + 88C863C825451D00006F32D6 /* RCTContextMenuManager.swift */, + 88C863C925451D00006F32D6 /* RCTMenuItem.swift */, ); path = RCTContextMenu; sourceTree = ""; }; - 88C863A725414966006F32D6 /* Extensions */ = { - isa = PBXGroup; - children = ( - 88C863A825414966006F32D6 /* UIMenuOptions+Helpers.swift */, - 88C863A925414966006F32D6 /* Encodable+Helpers.swift */, - 88C863AA25414966006F32D6 /* UIMenuElement+Helpers.swift */, - ); - path = Extensions; - sourceTree = ""; - }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ @@ -167,6 +188,18 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( + 88C863CD25451D00006F32D6 /* RCTSwiftLog.m in Sources */, + 88C863CF25451D00006F32D6 /* RCTMenuActionItem.swift in Sources */, + 88C863D325451D00006F32D6 /* RCTMenuImageType.swift in Sources */, + 88C863CA25451D00006F32D6 /* UIMenuOptions+Helpers.swift in Sources */, + 88C863CC25451D00006F32D6 /* UIMenuElement+Helpers.swift in Sources */, + 88C863D025451D00006F32D6 /* RCTContextMenuManager.m in Sources */, + 88C863CE25451D00006F32D6 /* RCTLog.swift in Sources */, + 88C863D225451D00006F32D6 /* RCTContextMenuView.swift in Sources */, + 88C863D425451D00006F32D6 /* RCTContextMenuManager.swift in Sources */, + 88C863D525451D00006F32D6 /* RCTMenuItem.swift in Sources */, + 88C863CB25451D00006F32D6 /* Encodable+Helpers.swift in Sources */, + 88C863D125451D00006F32D6 /* RCTMenuElement.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/ios/src_library/React Native/RCTContextMenu/RCTContextMenuView.swift b/ios/src_library/React Native/RCTContextMenu/RCTContextMenuView.swift index 3d84b8f..1c93338 100644 --- a/ios/src_library/React Native/RCTContextMenu/RCTContextMenuView.swift +++ b/ios/src_library/React Native/RCTContextMenu/RCTContextMenuView.swift @@ -12,6 +12,8 @@ import UIKit @available(iOS 13, *) class RCTContextMenuView: UIView { + var isContextMenuVisible = false; + // --------------------------------------------- // MARK: RCTContextMenuView - RN Event Callbacks // --------------------------------------------- @@ -57,6 +59,10 @@ class RCTContextMenuView: UIView { required init?(coder: NSCoder) { fatalError("init(coder:) has not been implemented"); }; + + override func reactSetFrame(_ frame: CGRect) { + super.reactSetFrame(frame); + }; }; // ----------------------------------------------------------- @@ -91,6 +97,7 @@ extension RCTContextMenuView: UIContextMenuInteractionDelegate { ); #endif + self.isContextMenuVisible = true; self.onMenuShow?([:]); }; @@ -101,7 +108,7 @@ extension RCTContextMenuView: UIContextMenuInteractionDelegate { + " - contextMenuInteraction: will hide" ); #endif - + self.isContextMenuVisible = false; self.onMenuHide?([:]); }; @@ -112,7 +119,7 @@ extension RCTContextMenuView: UIContextMenuInteractionDelegate { + " - contextMenuInteraction: preview tapped" ); #endif - + self.isContextMenuVisible = false; self.onPressMenuPreview?([:]); }; };