32 Commits

Author SHA1 Message Date
Ryan Nystrom f40215cc79 add center x option 2018-12-02 13:32:10 -05:00
Ryan Nystrom 51dcb68030 bump version and update examples 2018-12-02 13:07:33 -05:00
Ryan Nystrom 744b8e53b2 add new param 2018-12-02 13:06:45 -05:00
Ryan Nystrom 3804deeac5 Merge branch 'master' of github.com:GitHawkApp/ContextMenu 2018-12-02 12:59:00 -05:00
Cameron Mc Gorian d6757beba1 Run pod install on Example (#41) 2018-10-28 14:07:11 -04:00
Ryan Nystrom 93921110b1 bump version 0.4.0 2018-10-21 19:21:20 -04:00
Ryan Nystrom ff7a0ee4a3 Merge pull request #40 from kukushi/master
Respect child view controller's status bar style
2018-10-21 15:39:34 -04:00
kukushi 33fbfa8667 Respect child view controller's status bar style 2018-10-21 22:09:39 +08:00
Ryan Nystrom a6956a5027 Merge pull request #39 from GitHawkApp/integral-frame
Snap to pixels when laying out container
2018-10-18 19:34:47 -04:00
Ryan Nystrom ea4129160a Snap to pixels when laying out container 2018-10-17 17:59:24 -04:00
Ryan Nystrom 02030429e2 Merge pull request #37 from batjo/master
Swift 4.2
2018-10-17 10:42:47 -04:00
Bart Jochems 40dffce6e7 Swift 4.2 2018-10-09 12:01:54 +02:00
Ryan Nystrom 5caf267cde Merge pull request #35 from Jauzee/master
Set iOS 9 as min deployment target
2018-09-14 06:51:47 -04:00
Abdurahim Jauzee f0c56680f2 Remove sign identity from the target 2018-09-14 06:59:58 +03:00
Abdurahim Jauzee 003a04a476 Set deployment target to iOS 9 2018-09-14 06:59:38 +03:00
Ryan Nystrom 3186f54db5 Merge pull request #32 from GitHawkApp/bump-version
Bump pod version
2018-08-04 18:09:42 -04:00
Ryan Nystrom 06297df85f Bump pod version 2018-08-04 18:09:29 -04:00
Ryan Nystrom cc36499919 Merge pull request #31 from GitHawkApp/keyboard
Respond to keyboard presentation
2018-08-04 18:08:50 -04:00
Ryan Nystrom 0dadf7c8d7 Merge pull request #26 from GitHawkApp/corners-bug
Add corner math unit tests and make init private
2018-08-04 18:08:22 -04:00
Ryan Nystrom d30c57a5a8 Respond to keyboard presentation 2018-08-04 18:07:12 -04:00
Ryan Nystrom e7cf153f3c Merge pull request #28 from GitHawkApp/shadow-offset
Add shadow offset API and more noticeable defaults
2018-07-15 19:48:21 -04:00
Ryan Nystrom 95489cd2bf Add shadow offset API and more noticeable defaults 2018-07-15 19:48:04 -04:00
Ryan Nystrom 7bd9f9c408 Merge pull request #27 from pradeepb28/Feature/feedbackstyle_customization
Allow to use any feedback style
2018-07-09 14:22:28 -04:00
Pradeep 34f5b61af7 Allow to use any feedback style 2018-07-09 12:04:03 +05:30
Ryan Nystrom b5b8531fa3 make init of menu private 2018-05-28 15:01:34 -04:00
Ryan Nystrom 59b52e5217 add nil test 2018-05-28 14:03:55 -04:00
Ryan Nystrom 710cb18b83 passing corner tests 2018-05-28 14:01:45 -04:00
Ryan Nystrom 046d08e2c5 add no-padding test 2018-05-28 13:45:48 -04:00
Ryan Nystrom 97fc51eb1f add unit tests for corners 2018-05-28 13:44:01 -04:00
Ryan Nystrom 82fa81b1ab Merge pull request #24 from GitHawkApp/travis
Setup Travis CI
2018-04-22 15:37:21 -04:00
Ryan Nystrom 71d45111c5 use script 2018-04-22 14:45:16 -04:00
Ryan Nystrom 8a34ba3126 Setup Travis CI 2018-04-22 14:34:49 -04:00
30 changed files with 929 additions and 427 deletions
+4
View File
@@ -0,0 +1,4 @@
language: swift
osx_image: xcode9.3
script:
- xcodebuild clean -project ContextMenu.xcodeproj -scheme ContextMenu -destination "platform=iOS Simulator,name=iPhone X,OS=11.3" CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED=NO ONLY_ACTIVE_ARCH=NO -quiet
+2 -2
View File
@@ -1,6 +1,6 @@
Pod::Spec.new do |spec|
spec.name = 'ContextMenu'
spec.version = '0.2.0'
spec.version = '0.5.0'
spec.license = { :type => 'MIT' }
spec.homepage = 'https://github.com/GitHawkApp/ContextMenu'
spec.authors = { 'Ryan Nystrom' => 'rnystrom@whoisryannystrom.com' }
@@ -8,5 +8,5 @@ Pod::Spec.new do |spec|
spec.source = { :git => 'https://github.com/GitHawkApp/ContextMenu.git', :tag => spec.version.to_s }
spec.source_files = 'ContextMenu/*.swift'
spec.platform = :ios, '10.0'
spec.swift_version = '4.0'
spec.swift_version = '4.2'
end
+152 -5
View File
@@ -7,6 +7,7 @@
objects = {
/* Begin PBXBuildFile section */
2955D49F21B4555700A393D3 /* ContextMenu+Position.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2955D49E21B4555700A393D3 /* ContextMenu+Position.swift */; };
2971CE772054539900342296 /* ContextMenu.h in Headers */ = {isa = PBXBuildFile; fileRef = 2971CE752054539900342296 /* ContextMenu.h */; settings = {ATTRIBUTES = (Public, ); }; };
2971CE8B205453D900342296 /* ContextMenuPresentationController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2971CE7D205453D800342296 /* ContextMenuPresentationController.swift */; };
2971CE8C205453D900342296 /* ContextMenu+Options.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2971CE7E205453D800342296 /* ContextMenu+Options.swift */; };
@@ -23,10 +24,25 @@
2971CE97205453D900342296 /* ContextMenuPresenting.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2971CE89205453D900342296 /* ContextMenuPresenting.swift */; };
2971CE98205453D900342296 /* CGRect+Area.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2971CE8A205453D900342296 /* CGRect+Area.swift */; };
298D3AEE205B398500EDFB66 /* ContextMenuDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 298D3AED205B398500EDFB66 /* ContextMenuDelegate.swift */; };
2991418720BC757100B63A3B /* CGRect_AreaTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2991418620BC757100B63A3B /* CGRect_AreaTests.swift */; };
2991418920BC757100B63A3B /* ContextMenu.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2971CE722054539900342296 /* ContextMenu.framework */; };
2991419020BC77FA00B63A3B /* CGRect+DominantCorner.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2991418F20BC77FA00B63A3B /* CGRect+DominantCorner.swift */; };
2991419220BC789D00B63A3B /* CGRect_DominantCornerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2991419120BC789D00B63A3B /* CGRect_DominantCornerTests.swift */; };
DE5D838B2055D72A0069A81D /* UIViewController+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = DE5D838A2055D72A0069A81D /* UIViewController+Extensions.swift */; };
/* End PBXBuildFile section */
/* Begin PBXContainerItemProxy section */
2991418A20BC757100B63A3B /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 2971CE692054539900342296 /* Project object */;
proxyType = 1;
remoteGlobalIDString = 2971CE712054539900342296;
remoteInfo = ContextMenu;
};
/* End PBXContainerItemProxy section */
/* Begin PBXFileReference section */
2955D49E21B4555700A393D3 /* ContextMenu+Position.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "ContextMenu+Position.swift"; sourceTree = "<group>"; };
2971CE722054539900342296 /* ContextMenu.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = ContextMenu.framework; sourceTree = BUILT_PRODUCTS_DIR; };
2971CE752054539900342296 /* ContextMenu.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ContextMenu.h; sourceTree = "<group>"; };
2971CE762054539900342296 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
@@ -45,6 +61,11 @@
2971CE89205453D900342296 /* ContextMenuPresenting.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ContextMenuPresenting.swift; sourceTree = "<group>"; };
2971CE8A205453D900342296 /* CGRect+Area.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "CGRect+Area.swift"; sourceTree = "<group>"; };
298D3AED205B398500EDFB66 /* ContextMenuDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContextMenuDelegate.swift; sourceTree = "<group>"; };
2991418420BC757000B63A3B /* ContextMenuTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = ContextMenuTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
2991418620BC757100B63A3B /* CGRect_AreaTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CGRect_AreaTests.swift; sourceTree = "<group>"; };
2991418820BC757100B63A3B /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
2991418F20BC77FA00B63A3B /* CGRect+DominantCorner.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "CGRect+DominantCorner.swift"; sourceTree = "<group>"; };
2991419120BC789D00B63A3B /* CGRect_DominantCornerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CGRect_DominantCornerTests.swift; sourceTree = "<group>"; };
DE5D838A2055D72A0069A81D /* UIViewController+Extensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIViewController+Extensions.swift"; sourceTree = "<group>"; };
/* End PBXFileReference section */
@@ -56,6 +77,14 @@
);
runOnlyForDeploymentPostprocessing = 0;
};
2991418120BC757000B63A3B /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
2991418920BC757100B63A3B /* ContextMenu.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
@@ -63,6 +92,7 @@
isa = PBXGroup;
children = (
2971CE742054539900342296 /* ContextMenu */,
2991418520BC757100B63A3B /* ContextMenuTests */,
2971CE732054539900342296 /* Products */,
);
sourceTree = "<group>";
@@ -71,6 +101,7 @@
isa = PBXGroup;
children = (
2971CE722054539900342296 /* ContextMenu.framework */,
2991418420BC757000B63A3B /* ContextMenuTests.xctest */,
);
name = Products;
sourceTree = "<group>";
@@ -79,6 +110,7 @@
isa = PBXGroup;
children = (
2971CE8A205453D900342296 /* CGRect+Area.swift */,
2991418F20BC77FA00B63A3B /* CGRect+DominantCorner.swift */,
2971CE87205453D900342296 /* ClippedContainerViewController.swift */,
2971CE752054539900342296 /* ContextMenu.h */,
2971CE84205453D900342296 /* ContextMenu.swift */,
@@ -88,6 +120,7 @@
2971CE81205453D900342296 /* ContextMenu+Item.swift */,
2971CE86205453D900342296 /* ContextMenu+MenuStyle.swift */,
2971CE7E205453D800342296 /* ContextMenu+Options.swift */,
2955D49E21B4555700A393D3 /* ContextMenu+Position.swift */,
2971CE7F205453D800342296 /* ContextMenu+UIViewControllerTransitioningDelegate.swift */,
298D3AED205B398500EDFB66 /* ContextMenuDelegate.swift */,
2971CE82205453D900342296 /* ContextMenuDismissing.swift */,
@@ -100,6 +133,16 @@
path = ContextMenu;
sourceTree = "<group>";
};
2991418520BC757100B63A3B /* ContextMenuTests */ = {
isa = PBXGroup;
children = (
2991418620BC757100B63A3B /* CGRect_AreaTests.swift */,
2991419120BC789D00B63A3B /* CGRect_DominantCornerTests.swift */,
2991418820BC757100B63A3B /* Info.plist */,
);
path = ContextMenuTests;
sourceTree = "<group>";
};
/* End PBXGroup section */
/* Begin PBXHeadersBuildPhase section */
@@ -132,13 +175,32 @@
productReference = 2971CE722054539900342296 /* ContextMenu.framework */;
productType = "com.apple.product-type.framework";
};
2991418320BC757000B63A3B /* ContextMenuTests */ = {
isa = PBXNativeTarget;
buildConfigurationList = 2991418E20BC757100B63A3B /* Build configuration list for PBXNativeTarget "ContextMenuTests" */;
buildPhases = (
2991418020BC757000B63A3B /* Sources */,
2991418120BC757000B63A3B /* Frameworks */,
2991418220BC757000B63A3B /* Resources */,
);
buildRules = (
);
dependencies = (
2991418B20BC757100B63A3B /* PBXTargetDependency */,
);
name = ContextMenuTests;
productName = ContextMenuTests;
productReference = 2991418420BC757000B63A3B /* ContextMenuTests.xctest */;
productType = "com.apple.product-type.bundle.unit-test";
};
/* End PBXNativeTarget section */
/* Begin PBXProject section */
2971CE692054539900342296 /* Project object */ = {
isa = PBXProject;
attributes = {
LastUpgradeCheck = 0920;
LastSwiftUpdateCheck = 0930;
LastUpgradeCheck = 1000;
ORGANIZATIONNAME = "Ryan Nystrom";
TargetAttributes = {
2971CE712054539900342296 = {
@@ -146,6 +208,11 @@
LastSwiftMigration = 0920;
ProvisioningStyle = Automatic;
};
2991418320BC757000B63A3B = {
CreatedOnToolsVersion = 9.3;
LastSwiftMigration = 1000;
ProvisioningStyle = Automatic;
};
};
};
buildConfigurationList = 2971CE6C2054539900342296 /* Build configuration list for PBXProject "ContextMenu" */;
@@ -161,6 +228,7 @@
projectRoot = "";
targets = (
2971CE712054539900342296 /* ContextMenu */,
2991418320BC757000B63A3B /* ContextMenuTests */,
);
};
/* End PBXProject section */
@@ -173,6 +241,13 @@
);
runOnlyForDeploymentPostprocessing = 0;
};
2991418220BC757000B63A3B /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXResourcesBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
@@ -183,6 +258,7 @@
2971CE98205453D900342296 /* CGRect+Area.swift in Sources */,
2971CE93205453D900342296 /* ContextMenu+ContextMenuPresentationControllerDelegate.swift in Sources */,
2971CE91205453D900342296 /* ContextMenu+Animations.swift in Sources */,
2955D49F21B4555700A393D3 /* ContextMenu+Position.swift in Sources */,
2971CE97205453D900342296 /* ContextMenuPresenting.swift in Sources */,
2971CE90205453D900342296 /* ContextMenuDismissing.swift in Sources */,
2971CE94205453D900342296 /* ContextMenu+MenuStyle.swift in Sources */,
@@ -194,13 +270,31 @@
2971CE8F205453D900342296 /* ContextMenu+Item.swift in Sources */,
2971CE8B205453D900342296 /* ContextMenuPresentationController.swift in Sources */,
2971CE8C205453D900342296 /* ContextMenu+Options.swift in Sources */,
2991419020BC77FA00B63A3B /* CGRect+DominantCorner.swift in Sources */,
2971CE92205453D900342296 /* ContextMenu.swift in Sources */,
2971CE8D205453D900342296 /* ContextMenu+UIViewControllerTransitioningDelegate.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
2991418020BC757000B63A3B /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
2991419220BC789D00B63A3B /* CGRect_DominantCornerTests.swift in Sources */,
2991418720BC757100B63A3B /* CGRect_AreaTests.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXSourcesBuildPhase section */
/* Begin PBXTargetDependency section */
2991418B20BC757100B63A3B /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
target = 2971CE712054539900342296 /* ContextMenu */;
targetProxy = 2991418A20BC757100B63A3B /* PBXContainerItemProxy */;
};
/* End PBXTargetDependency section */
/* Begin XCBuildConfiguration section */
2971CE782054539900342296 /* Debug */ = {
isa = XCBuildConfiguration;
@@ -216,6 +310,7 @@
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_COMMA = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
CLANG_WARN_EMPTY_BODY = YES;
@@ -223,6 +318,7 @@
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
@@ -276,6 +372,7 @@
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_COMMA = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
CLANG_WARN_EMPTY_BODY = YES;
@@ -283,6 +380,7 @@
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
@@ -322,18 +420,20 @@
CODE_SIGN_IDENTITY = "";
CODE_SIGN_STYLE = Automatic;
DEFINES_MODULE = YES;
DEVELOPMENT_TEAM = 523C4DWBTH;
DEVELOPMENT_TEAM = "";
DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_CURRENT_VERSION = 1;
DYLIB_INSTALL_NAME_BASE = "@rpath";
INFOPLIST_FILE = ContextMenu/Info.plist;
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
IPHONEOS_DEPLOYMENT_TARGET = 10.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = com.whoisryannystrom.ContextMenu;
PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
PROVISIONING_PROFILE_SPECIFIER = "";
SKIP_INSTALL = YES;
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
SWIFT_VERSION = 4.0;
SWIFT_VERSION = 4.2;
TARGETED_DEVICE_FAMILY = "1,2";
};
name = Debug;
@@ -345,17 +445,55 @@
CODE_SIGN_IDENTITY = "";
CODE_SIGN_STYLE = Automatic;
DEFINES_MODULE = YES;
DEVELOPMENT_TEAM = 523C4DWBTH;
DEVELOPMENT_TEAM = "";
DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_CURRENT_VERSION = 1;
DYLIB_INSTALL_NAME_BASE = "@rpath";
INFOPLIST_FILE = ContextMenu/Info.plist;
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
IPHONEOS_DEPLOYMENT_TARGET = 10.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = com.whoisryannystrom.ContextMenu;
PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
PROVISIONING_PROFILE_SPECIFIER = "";
SKIP_INSTALL = YES;
SWIFT_VERSION = 4.0;
SWIFT_VERSION = 4.2;
TARGETED_DEVICE_FAMILY = "1,2";
};
name = Release;
};
2991418C20BC757100B63A3B /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
CLANG_ENABLE_OBJC_WEAK = YES;
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
CODE_SIGN_STYLE = Automatic;
DEVELOPMENT_TEAM = 523C4DWBTH;
INFOPLIST_FILE = ContextMenuTests/Info.plist;
IPHONEOS_DEPLOYMENT_TARGET = 11.3;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = com.whoisryannystrom.ContextMenuTests;
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_VERSION = 4.2;
TARGETED_DEVICE_FAMILY = "1,2";
};
name = Debug;
};
2991418D20BC757100B63A3B /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
CLANG_ENABLE_OBJC_WEAK = YES;
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
CODE_SIGN_STYLE = Automatic;
DEVELOPMENT_TEAM = 523C4DWBTH;
INFOPLIST_FILE = ContextMenuTests/Info.plist;
IPHONEOS_DEPLOYMENT_TARGET = 11.3;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = com.whoisryannystrom.ContextMenuTests;
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_VERSION = 4.2;
TARGETED_DEVICE_FAMILY = "1,2";
};
name = Release;
@@ -381,6 +519,15 @@
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
2991418E20BC757100B63A3B /* Build configuration list for PBXNativeTarget "ContextMenuTests" */ = {
isa = XCConfigurationList;
buildConfigurations = (
2991418C20BC757100B63A3B /* Debug */,
2991418D20BC757100B63A3B /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
/* End XCConfigurationList section */
};
rootObject = 2971CE692054539900342296 /* Project object */;
@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>IDEDidComputeMac32BitWarning</key>
<true/>
</dict>
</plist>
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "0920"
LastUpgradeVersion = "1000"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
@@ -26,10 +26,28 @@
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
language = ""
shouldUseLaunchSchemeArgsEnv = "YES">
<Testables>
<TestableReference
skipped = "NO">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "2991418320BC757000B63A3B"
BuildableName = "ContextMenuTests.xctest"
BlueprintName = "ContextMenuTests"
ReferencedContainer = "container:ContextMenu.xcodeproj">
</BuildableReference>
</TestableReference>
</Testables>
<MacroExpansion>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "2971CE712054539900342296"
BuildableName = "ContextMenu.framework"
BlueprintName = "ContextMenu"
ReferencedContainer = "container:ContextMenu.xcodeproj">
</BuildableReference>
</MacroExpansion>
<AdditionalOptions>
</AdditionalOptions>
</TestAction>
@@ -37,7 +55,6 @@
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
language = ""
launchStyle = "0"
useCustomWorkingDirectory = "NO"
ignoresPersistentStateOnLaunch = "NO"
+33
View File
@@ -0,0 +1,33 @@
//
// CGRect+DominantCorner.swift
// ContextMenu
//
// Created by Ryan Nystrom on 5/28/18.
// Copyright © 2018 Ryan Nystrom. All rights reserved.
//
import UIKit
extension CGRect {
func dominantCorner(in rect: CGRect) -> SourceViewCorner? {
let corners: [SourceViewCorner] = [
SourceViewCorner(rect: rect, position: .topLeft),
SourceViewCorner(rect: rect, position: .topRight),
SourceViewCorner(rect: rect, position: .bottomLeft),
SourceViewCorner(rect: rect, position: .bottomRight),
]
var maxArea: CGFloat = 0
var maxCorner: SourceViewCorner? = nil
for corner in corners {
let area = self.area(corner: corner)
if area > maxArea {
maxArea = area
maxCorner = corner
}
}
return maxCorner
}
}
@@ -15,6 +15,10 @@ class ClippedContainerViewController: UIViewController {
private let options: ContextMenu.Options
private let containedViewController: UINavigationController
override var preferredStatusBarStyle: UIStatusBarStyle {
return viewController.preferredStatusBarStyle
}
init(options: ContextMenu.Options, viewController: UIViewController) {
self.viewController = viewController
self.options = options
@@ -32,10 +36,11 @@ class ClippedContainerViewController: UIViewController {
view.layer.cornerRadius = options.containerStyle.cornerRadius
view.layer.shadowRadius = options.containerStyle.shadowRadius
view.layer.shadowOpacity = options.containerStyle.shadowOpacity
view.layer.shadowOffset = options.containerStyle.shadowOffset
view.layer.shadowColor = UIColor.black.cgColor
view.backgroundColor = options.containerStyle.backgroundColor
if options.containerStyle.motionEffect && UIAccessibilityIsReduceMotionEnabled() == false {
if options.containerStyle.motionEffect && UIAccessibility.isReduceMotionEnabled == false {
let amount = 12
let tiltX = UIInterpolatingMotionEffect(keyPath: "center.x", type: .tiltAlongHorizontalAxis)
tiltX.minimumRelativeValue = -amount
@@ -67,9 +72,9 @@ class ClippedContainerViewController: UIViewController {
navigationBar.setBackgroundImage(image, for: .any, barMetrics: .default)
navigationBar.shadowImage = image
addChildViewController(containedViewController)
addChild(containedViewController)
view.addSubview(containedViewController.view)
containedViewController.didMove(toParentViewController: self)
containedViewController.didMove(toParent: self)
preferredContentSize = containedViewController.preferredContentSize
}
+7 -2
View File
@@ -22,6 +22,9 @@ extension ContextMenu {
/// The shadow opacity of the menu container. The shadow color is `UIColor.black`.
public let shadowOpacity: Float
/// The shadow offset of the menu container.
public let shadowOffset: CGSize
/// The padding from the source-view corner to apply to the x-axis. Positive is further away.
public let xPadding: CGFloat
@@ -43,8 +46,9 @@ extension ContextMenu {
public init(
cornerRadius: CGFloat = 8,
shadowRadius: CGFloat = 15,
shadowOpacity: Float = 0.1,
shadowRadius: CGFloat = 10,
shadowOpacity: Float = 0.4,
shadowOffset: CGSize = CGSize(width: 0, height: 2),
xPadding: CGFloat = 8,
yPadding: CGFloat = 8,
edgePadding: CGFloat = 15,
@@ -55,6 +59,7 @@ extension ContextMenu {
self.cornerRadius = cornerRadius
self.shadowRadius = shadowRadius
self.shadowOpacity = shadowOpacity
self.shadowOffset = shadowOffset
self.xPadding = xPadding
self.yPadding = yPadding
self.edgePadding = edgePadding
+8 -3
View File
@@ -23,18 +23,23 @@ extension ContextMenu {
let menuStyle: MenuStyle
/// Trigger haptic feedback when the menu is shown.
let haptics: Bool
let hapticsStyle: UIImpactFeedbackGenerator.FeedbackStyle?
/// The position relative to the source view (if provided).
let position: Position
public init(
durations: AnimationDurations = AnimationDurations(),
containerStyle: ContainerStyle = ContainerStyle(),
menuStyle: MenuStyle = .default,
haptics: Bool = true
hapticsStyle: UIImpactFeedbackGenerator.FeedbackStyle? = nil,
position: Position = .default
) {
self.durations = durations
self.containerStyle = containerStyle
self.menuStyle = menuStyle
self.haptics = haptics
self.hapticsStyle = hapticsStyle
self.position = position
}
}
+24
View File
@@ -0,0 +1,24 @@
//
// ContextMenu+Position.swift
// ContextMenu
//
// Created by Ryan Nystrom on 12/2/18.
// Copyright © 2018 Ryan Nystrom. All rights reserved.
//
import Foundation
extension ContextMenu {
/// Position of the menu container relative to the source view.
public enum Position {
/// Snap to the most visible corner.
case `default`
/// Snap to the center X.
case centerX
}
}
+4 -2
View File
@@ -15,8 +15,8 @@ public class ContextMenu: NSObject {
public static let shared = ContextMenu()
var item: Item?
let haptics = UIImpactFeedbackGenerator(style: .medium)
private override init() {}
/// Show a context menu from a view controller with given options.
///
@@ -37,7 +37,8 @@ public class ContextMenu: NSObject {
previous.viewController.dismiss(animated: false)
}
if options.haptics {
if let style = options.hapticsStyle {
let haptics = UIImpactFeedbackGenerator(style: style)
haptics.impactOccurred()
}
@@ -51,6 +52,7 @@ public class ContextMenu: NSObject {
item.viewController.transitioningDelegate = self
item.viewController.modalPresentationStyle = .custom
item.viewController.modalPresentationCapturesStatusBarAppearance = true
sourceViewController.present(item.viewController, animated: true)
}
@@ -16,10 +16,29 @@ class ContextMenuPresentationController: UIPresentationController {
weak var contextDelegate: ContextMenuPresentationControllerDelegate?
let item: ContextMenu.Item
var keyboardSpace: CGFloat = 0
init(presentedViewController: UIViewController, presenting presentingViewController: UIViewController?, item: ContextMenu.Item) {
self.item = item
super.init(presentedViewController: presentedViewController, presenting: presentingViewController)
NotificationCenter.default.addObserver(
self,
selector: #selector(onKeyboard(notification:)),
name: UIResponder.keyboardWillShowNotification,
object: nil
)
NotificationCenter.default.addObserver(
self,
selector: #selector(onKeyboard(notification:)),
name: UIResponder.keyboardWillHideNotification,
object: nil
)
NotificationCenter.default.addObserver(
self,
selector: #selector(onKeyboard(notification:)),
name: UIResponder.keyboardWillChangeFrameNotification,
object: nil
)
}
lazy var overlayView: UIView = {
@@ -34,50 +53,44 @@ class ContextMenuPresentationController: UIPresentationController {
let frame = item.sourceView?.superview?.convert(sourceViewFrame, to: containerView)
else { return nil}
let corners: [SourceViewCorner] = [
SourceViewCorner(point: CGPoint(x: frame.minX, y: frame.minY), position: .topLeft),
SourceViewCorner(point: CGPoint(x: frame.maxX, y: frame.minY), position: .topRight),
SourceViewCorner(point: CGPoint(x: frame.minX, y: frame.maxY), position: .bottomLeft),
SourceViewCorner(point: CGPoint(x: frame.maxX, y: frame.maxY), position: .bottomRight),
]
var maxArea: CGFloat = 0
var maxCorner: SourceViewCorner? = nil
for corner in corners {
let area = containerView.bounds.area(corner: corner)
if area > maxArea {
maxArea = area
maxCorner = corner
}
}
return maxCorner
return containerView.bounds.dominantCorner(in: frame)
}
override var frameOfPresentedViewInContainerView: CGRect {
guard let containerBounds = containerView?.bounds else { return .zero }
let size = presentedViewController.preferredContentSize
let frame: CGRect
if let corner = preferredSourceViewCorner {
let minPadding = item.options.containerStyle.edgePadding
let x = corner.point.x
+ corner.position.xSizeModifier * size.width
+ corner.position.xModifier * item.options.containerStyle.xPadding
let y = corner.point.y
+ corner.position.ySizeModifier * size.height
+ corner.position.yModifier * item.options.containerStyle.yPadding
return CGRect(
let x: CGFloat
switch item.options.position {
case .default:
x = corner.point.x
+ corner.position.xSizeModifier * size.width
+ corner.position.xModifier * item.options.containerStyle.xPadding
case .centerX:
x = corner.rect.midX - size.width / 2
}
frame = CGRect(
x: max(minPadding, min(containerBounds.width - size.width - minPadding, x)),
y: max(minPadding, min(containerBounds.height - size.height - minPadding, y)),
width: size.width,
height: size.height
)
} else {
return CGRect(
frame = CGRect(
x: (containerBounds.width - size.width)/2,
y: (containerBounds.height - size.height)/2,
y: (containerBounds.height - keyboardSpace - size.height)/2,
width: size.width,
height: size.height
)
}
return frame.integral
}
override func containerViewWillLayoutSubviews() {
@@ -158,4 +171,16 @@ class ContextMenuPresentationController: UIPresentationController {
}
}
@objc func onKeyboard(notification: Notification) {
guard let frame = notification.userInfo?[UIResponder.keyboardFrameEndUserInfoKey] as? CGRect,
let duration = notification.userInfo?[UIResponder.keyboardAnimationDurationUserInfoKey] as? TimeInterval,
let containerView = self.containerView
else { return }
keyboardSpace = containerView.bounds.height - frame.minY
UIView.animate(withDuration: duration) {
containerView.setNeedsLayout()
containerView.layoutIfNeeded()
}
}
}
+11 -2
View File
@@ -10,7 +10,7 @@ import UIKit
struct SourceViewCorner {
enum Position {
enum Position: Int {
case topLeft
case topRight
case bottomLeft
@@ -46,7 +46,16 @@ struct SourceViewCorner {
}
let point: CGPoint
let rect: CGRect
let position: Position
var point: CGPoint {
switch position {
case .topLeft: return CGPoint(x: rect.minX, y: rect.minY)
case .topRight: return CGPoint(x: rect.maxX, y: rect.minY)
case .bottomLeft: return CGPoint(x: rect.minX, y: rect.maxY)
case .bottomRight: return CGPoint(x: rect.maxX, y: rect.maxY)
}
}
}
+30
View File
@@ -0,0 +1,30 @@
//
// ContextMenuTests.swift
// ContextMenuTests
//
// Created by Ryan Nystrom on 5/28/18.
// Copyright © 2018 Ryan Nystrom. All rights reserved.
//
import XCTest
@testable import ContextMenu
class CGRect_AreaTests: XCTestCase {
let rect = CGRect(x: 0, y: 0, width: 100, height: 100)
func test_whenCornersHavePadding() {
XCTAssertEqual(rect.area(corner: SourceViewCorner(point: CGPoint(x: 10, y: 10), position: .topLeft)), 100)
XCTAssertEqual(rect.area(corner: SourceViewCorner(point: CGPoint(x: 90, y: 10), position: .topRight)), 100)
XCTAssertEqual(rect.area(corner: SourceViewCorner(point: CGPoint(x: 90, y: 90), position: .bottomRight)), 100)
XCTAssertEqual(rect.area(corner: SourceViewCorner(point: CGPoint(x: 10, y: 90), position: .bottomLeft)), 100)
}
func test_whenCornersHaveNoPadding() {
XCTAssertEqual(rect.area(corner: SourceViewCorner(point: CGPoint(x: 0, y: 0), position: .topLeft)), 0)
XCTAssertEqual(rect.area(corner: SourceViewCorner(point: CGPoint(x: 100, y: 0), position: .topRight)), 0)
XCTAssertEqual(rect.area(corner: SourceViewCorner(point: CGPoint(x: 100, y: 100), position: .bottomRight)), 0)
XCTAssertEqual(rect.area(corner: SourceViewCorner(point: CGPoint(x: 00, y: 100), position: .bottomLeft)), 0)
}
}
@@ -0,0 +1,36 @@
//
// CGRect_DominantCornerTests.swift
// ContextMenuTests
//
// Created by Ryan Nystrom on 5/28/18.
// Copyright © 2018 Ryan Nystrom. All rights reserved.
//
import XCTest
@testable import ContextMenu
class CGRect_DominantCornerTests: XCTestCase {
let rect = CGRect(x: 0, y: 0, width: 100, height: 100)
func test_whenCornerExists_withTopLeft() {
XCTAssertEqual(rect.dominantCorner(in: CGRect(x: 11, y: 11, width: 80, height: 80))?.position, .topLeft)
}
func test_whenCornerExists_withTopRight() {
XCTAssertEqual(rect.dominantCorner(in: CGRect(x: 9, y: 11, width: 80, height: 80))?.position, .topRight)
}
func test_whenCornerExists_withBottomLeft() {
XCTAssertEqual(rect.dominantCorner(in: CGRect(x: 11, y: 9, width: 80, height: 80))?.position, .bottomLeft)
}
func test_whenCornerExists_withBottomRight() {
XCTAssertEqual(rect.dominantCorner(in: CGRect(x: 9, y: 9, width: 80, height: 80))?.position, .bottomRight)
}
func test_whenCornersEqual_thatReturnsNil() {
XCTAssertNil(rect.dominantCorner(in: rect))
}
}
+22
View File
@@ -0,0 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>$(DEVELOPMENT_LANGUAGE)</string>
<key>CFBundleExecutable</key>
<string>$(EXECUTABLE_NAME)</string>
<key>CFBundleIdentifier</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>$(PRODUCT_NAME)</string>
<key>CFBundlePackageType</key>
<string>BNDL</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleVersion</key>
<string>1</string>
</dict>
</plist>
+7 -18
View File
@@ -13,6 +13,7 @@
2971CEAD205454BD00342296 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 2971CEAC205454BD00342296 /* Assets.xcassets */; };
2971CEB0205454BD00342296 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 2971CEAE205454BD00342296 /* LaunchScreen.storyboard */; };
2971CEB82054553400342296 /* MenuViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2971CEB72054553400342296 /* MenuViewController.swift */; };
29DE277C211654E800556C44 /* KeyboardMenuViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29DE277B211654E800556C44 /* KeyboardMenuViewController.swift */; };
5D9BB1BB05FE1C79E1E43B74 /* Pods_Example.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 67EA137013E06182CC4BE858 /* Pods_Example.framework */; };
/* End PBXBuildFile section */
@@ -25,6 +26,7 @@
2971CEAF205454BD00342296 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; };
2971CEB1205454BD00342296 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
2971CEB72054553400342296 /* MenuViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MenuViewController.swift; sourceTree = "<group>"; };
29DE277B211654E800556C44 /* KeyboardMenuViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KeyboardMenuViewController.swift; sourceTree = "<group>"; };
445EDEAD1EC427ACF9B0E27F /* Pods-Example.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Example.debug.xcconfig"; path = "Pods/Target Support Files/Pods-Example/Pods-Example.debug.xcconfig"; sourceTree = "<group>"; };
67EA137013E06182CC4BE858 /* Pods_Example.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Example.framework; sourceTree = BUILT_PRODUCTS_DIR; };
A8435E3320DB10C18B762D4A /* Pods-Example.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Example.release.xcconfig"; path = "Pods/Target Support Files/Pods-Example/Pods-Example.release.xcconfig"; sourceTree = "<group>"; };
@@ -66,6 +68,7 @@
2971CEA5205454BD00342296 /* AppDelegate.swift */,
2971CEAC205454BD00342296 /* Assets.xcassets */,
2971CEB1205454BD00342296 /* Info.plist */,
29DE277B211654E800556C44 /* KeyboardMenuViewController.swift */,
2971CEAE205454BD00342296 /* LaunchScreen.storyboard */,
2971CEA9205454BD00342296 /* Main.storyboard */,
2971CEB72054553400342296 /* MenuViewController.swift */,
@@ -103,7 +106,6 @@
2971CE9F205454BD00342296 /* Frameworks */,
2971CEA0205454BD00342296 /* Resources */,
27C1DE8FF747B6D110FAA1D7 /* [CP] Embed Pods Frameworks */,
823E736755195F61FFC5DDE6 /* [CP] Copy Pods Resources */,
);
buildRules = (
);
@@ -126,6 +128,7 @@
TargetAttributes = {
2971CEA1205454BD00342296 = {
CreatedOnToolsVersion = 9.2;
LastSwiftMigration = 1000;
ProvisioningStyle = Automatic;
};
};
@@ -198,21 +201,6 @@
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
showEnvVarsInLog = 0;
};
823E736755195F61FFC5DDE6 /* [CP] Copy Pods Resources */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputPaths = (
);
name = "[CP] Copy Pods Resources";
outputPaths = (
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Example/Pods-Example-resources.sh\"\n";
showEnvVarsInLog = 0;
};
/* End PBXShellScriptBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
@@ -220,6 +208,7 @@
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
29DE277C211654E800556C44 /* KeyboardMenuViewController.swift in Sources */,
2971CEA8205454BD00342296 /* ViewController.swift in Sources */,
2971CEB82054553400342296 /* MenuViewController.swift in Sources */,
2971CEA6205454BD00342296 /* AppDelegate.swift in Sources */,
@@ -366,7 +355,7 @@
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = com.whoisryannystrom.Example;
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_VERSION = 4.0;
SWIFT_VERSION = 4.2;
TARGETED_DEVICE_FAMILY = "1,2";
};
name = Debug;
@@ -382,7 +371,7 @@
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = com.whoisryannystrom.Example;
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_VERSION = 4.0;
SWIFT_VERSION = 4.2;
TARGETED_DEVICE_FAMILY = "1,2";
};
name = Release;
@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>IDEDidComputeMac32BitWarning</key>
<true/>
</dict>
</plist>
+1 -1
View File
@@ -14,7 +14,7 @@ class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
// Override point for customization after application launch.
return true
}
+18 -5
View File
@@ -1,11 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="13771" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES" initialViewController="e4f-v2-AZw">
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="14113" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES" initialViewController="e4f-v2-AZw">
<device id="retina4_7" orientation="portrait">
<adaptation id="fullscreen"/>
</device>
<dependencies>
<deployment identifier="iOS"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="13772"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="14088"/>
<capability name="Safe area layout guides" minToolsVersion="9.0"/>
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
</dependencies>
@@ -29,25 +29,38 @@
<!--View Controller-->
<scene sceneID="rxc-Qs-SX5">
<objects>
<viewController id="EDa-Kx-2Bx" customClass="ViewController" customModule="ThingsUI" customModuleProvider="target" sceneMemberID="viewController">
<viewController id="EDa-Kx-2Bx" customClass="ViewController" customModule="Example" customModuleProvider="target" sceneMemberID="viewController">
<view key="view" contentMode="scaleToFill" id="XV0-SI-Dlz">
<rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<button opaque="NO" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="detailDisclosure" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="bMp-Tt-bsj">
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="detailDisclosure" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="bMp-Tt-bsj">
<rect key="frame" x="176" y="322" width="22" height="22"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<connections>
<action selector="onButton:" destination="EDa-Kx-2Bx" eventType="touchUpInside" id="1kc-D5-Xxx"/>
</connections>
</button>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="7wb-6n-2xQ">
<rect key="frame" x="154" y="266" width="66" height="30"/>
<state key="normal" title="Keyboard"/>
<connections>
<action selector="onKeyboardButton:" destination="EDa-Kx-2Bx" eventType="touchUpInside" id="cq5-s1-ege"/>
</connections>
</button>
</subviews>
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<constraints>
<constraint firstItem="bMp-Tt-bsj" firstAttribute="top" secondItem="7wb-6n-2xQ" secondAttribute="bottom" constant="26" id="KiU-xP-eNi"/>
<constraint firstItem="bMp-Tt-bsj" firstAttribute="centerY" secondItem="XV0-SI-Dlz" secondAttribute="centerY" id="iz2-Cf-TYK"/>
<constraint firstItem="7wb-6n-2xQ" firstAttribute="centerX" secondItem="XV0-SI-Dlz" secondAttribute="centerX" id="vZG-CE-9Aq"/>
<constraint firstItem="bMp-Tt-bsj" firstAttribute="centerX" secondItem="XV0-SI-Dlz" secondAttribute="centerX" id="zsN-8S-KnR"/>
</constraints>
<viewLayoutGuide key="safeArea" id="0wB-Wa-A20"/>
</view>
<navigationItem key="navigationItem" id="FIU-fZ-kBQ"/>
<connections>
<outlet property="button" destination="bMp-Tt-bsj" id="MPB-L4-weP"/>
<outlet property="keyboardButton" destination="7wb-6n-2xQ" id="EI3-VG-aa5"/>
</connections>
</viewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="Hcb-0m-21I" userLabel="First Responder" sceneMemberID="firstResponder"/>
@@ -0,0 +1,50 @@
//
// KeyboardMenuViewController.swift
// Example
//
// Created by Ryan Nystrom on 8/4/18.
// Copyright © 2018 Ryan Nystrom. All rights reserved.
//
import UIKit
class KeyboardMenuViewController: UIViewController {
let textView = UITextView()
override func viewDidLoad() {
super.viewDidLoad()
title = "Keyboard"
preferredContentSize = CGSize(width: 300, height: 200)
view.addSubview(textView)
textView.textContainerInset = UIEdgeInsets(top: 8, left: 15, bottom: 8, right: 15)
textView.font = UIFont.systemFont(ofSize: 18)
textView.text = "Lorem ipsum"
navigationItem.rightBarButtonItem = UIBarButtonItem(
barButtonSystemItem: .done,
target: self,
action: #selector(onDone)
)
navigationItem.leftBarButtonItem = UIBarButtonItem(
title: "Dismiss",
style: .plain,
target: self,
action: #selector(onDismiss)
)
}
override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
textView.frame = view.bounds
}
@objc func onDone() {
dismiss(animated: true)
}
@objc func onDismiss() {
textView.resignFirstResponder()
}
}
+17 -2
View File
@@ -12,7 +12,8 @@ import ContextMenu
class ViewController: UIViewController, ContextMenuDelegate {
@IBOutlet weak var button: UIButton!
@IBOutlet weak var keyboardButton: UIButton!
override func viewDidLoad() {
super.viewDidLoad()
button.addGestureRecognizer(UIPanGestureRecognizer(target: self, action: #selector(onPan(gesture:))))
@@ -27,12 +28,26 @@ class ViewController: UIViewController, ContextMenuDelegate {
ContextMenu.shared.show(
sourceViewController: self,
viewController: MenuViewController(),
options: ContextMenu.Options(containerStyle: ContextMenu.ContainerStyle(backgroundColor: UIColor(red: 41/255.0, green: 45/255.0, blue: 53/255.0, alpha: 1)), menuStyle: .minimal),
options: ContextMenu.Options(
containerStyle: ContextMenu.ContainerStyle(
backgroundColor: UIColor(red: 41/255.0, green: 45/255.0, blue: 53/255.0, alpha: 1)
),
menuStyle: .default,
hapticsStyle: .medium
),
sourceView: button,
delegate: self
)
}
@IBAction func onKeyboardButton(_ sender: Any) {
ContextMenu.shared.show(
sourceViewController: self,
viewController: KeyboardMenuViewController(),
options: ContextMenu.Options(menuStyle: .default, hapticsStyle: .medium)
)
}
//MARK: ContextMenuDelegate
func contextMenuWillDismiss(viewController: UIViewController, animated: Bool) {
+4 -4
View File
@@ -1,16 +1,16 @@
PODS:
- ContextMenu (0.1.0)
- ContextMenu (0.5.0)
DEPENDENCIES:
- ContextMenu (from `../ContextMenu.podspec`)
EXTERNAL SOURCES:
ContextMenu:
:path: ../ContextMenu.podspec
:path: "../ContextMenu.podspec"
SPEC CHECKSUMS:
ContextMenu: 1517412586bc77274020b56b2fd2fd64c0b743e7
ContextMenu: 771a37612cd5cd10bf1dc0e3b9187df4d6f1e57a
PODFILE CHECKSUM: aa060c7f3a10a9cb8b2633f1297c22bb65e4f54d
COCOAPODS: 1.4.0
COCOAPODS: 1.5.3
+3 -3
View File
@@ -1,6 +1,6 @@
{
"name": "ContextMenu",
"version": "0.1.0",
"version": "0.5.0",
"license": {
"type": "MIT"
},
@@ -11,11 +11,11 @@
"summary": "Context menu inspired by Things 3.",
"source": {
"git": "https://github.com/GitHawkApp/ContextMenu.git",
"tag": "0.1.0"
"tag": "0.5.0"
},
"source_files": "ContextMenu/*.swift",
"platforms": {
"ios": "10.0"
},
"swift_version": "4.0"
"swift_version": "4.2"
}
+4 -4
View File
@@ -1,16 +1,16 @@
PODS:
- ContextMenu (0.1.0)
- ContextMenu (0.5.0)
DEPENDENCIES:
- ContextMenu (from `../ContextMenu.podspec`)
EXTERNAL SOURCES:
ContextMenu:
:path: ../ContextMenu.podspec
:path: "../ContextMenu.podspec"
SPEC CHECKSUMS:
ContextMenu: 1517412586bc77274020b56b2fd2fd64c0b743e7
ContextMenu: 771a37612cd5cd10bf1dc0e3b9187df4d6f1e57a
PODFILE CHECKSUM: aa060c7f3a10a9cb8b2633f1297c22bb65e4f54d
COCOAPODS: 1.4.0
COCOAPODS: 1.5.3
+373 -338
View File
@@ -7,110 +7,106 @@
objects = {
/* Begin PBXBuildFile section */
035CEF32DA4C5D1DCA33C614CEB17913 /* ContextMenu-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 6DD3DF68FA265165A9C960C87FA9B555 /* ContextMenu-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
03C7D3FAC04C2CC8CFC5D8B8B5662F99 /* ContextMenu+MenuStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = B9EACC934B425B94E0AC66C11F914C5B /* ContextMenu+MenuStyle.swift */; };
20D5042ECFA20AA664AAE1E20D77806E /* ContextMenuDismissing.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80691B6A70DF37D3B71B5BE2CBD7887B /* ContextMenuDismissing.swift */; };
2E74EA4FD27725BA605672D98EF5775A /* ContextMenuPresenting.swift in Sources */ = {isa = PBXBuildFile; fileRef = C7384709B9EFCE2A4C4DA7AD397D8C92 /* ContextMenuPresenting.swift */; };
3293BFE2E95182659C0545055872E33A /* SourceViewCorner.swift in Sources */ = {isa = PBXBuildFile; fileRef = C5B25A99DEC14DE8ED73B2253DA28C61 /* SourceViewCorner.swift */; };
32BD703743B0B8B75A5832596BBDD912 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6604A7D69453B4569E4E4827FB9155A9 /* Foundation.framework */; };
34611D820062FF0D2537BA5BB77FC49F /* ContextMenu-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = B1B000328F90D8A5D58AF2823DE7572A /* ContextMenu-dummy.m */; };
34DE824BF8077EF1C9325550AC2F1367 /* ContextMenu.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1DEB16962167FB991B230C703581DEB6 /* ContextMenu.swift */; };
40F454BB711499A3B137B3CD6180DCD4 /* Pods-Example-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 1AD65E35A3233FBE6F2EFDEB3D43D114 /* Pods-Example-dummy.m */; };
457F0B73107CD96C71CAE03029AA8BDC /* CGRect+Area.swift in Sources */ = {isa = PBXBuildFile; fileRef = A4C37E5160ADE6D8A8F853EA04A37F16 /* CGRect+Area.swift */; };
5D1AF63F82B9CC3377710DC84424F6C5 /* ContextMenu+ContextMenuPresentationControllerDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = C38465B7FAD1178F371BB945E9F0CABD /* ContextMenu+ContextMenuPresentationControllerDelegate.swift */; };
67051657982C7F45AA72807C10028E40 /* ContextMenuPresentationController.swift in Sources */ = {isa = PBXBuildFile; fileRef = B61C48FECAA4B036403FFB37558F775D /* ContextMenuPresentationController.swift */; };
71B3B8136D9A8DACBBD76C3B1272FE02 /* Pods-Example-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 15D3FE98E9F2D34863BD3F3597A0485A /* Pods-Example-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
770FCA2E81351AFFDBBB678E9676AE06 /* ContextMenuDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = E740D7A9F7277862B645221D4138C3C3 /* ContextMenuDelegate.swift */; };
C0026F3B533B8B9D029136A90B8FF394 /* UIViewController+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = C6C9E30931E91AAE1145FC7B7CFF5698 /* UIViewController+Extensions.swift */; };
CCEA546C378D7EBCE8DC42F49AC65F01 /* ClippedContainerViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = CDDD0FF66B18CA43F3B6D561A5940E28 /* ClippedContainerViewController.swift */; };
D307CADFFC08A750DF71A1A103EE73CD /* ContextMenu+Options.swift in Sources */ = {isa = PBXBuildFile; fileRef = 67B629876410BD4AFE53A6624B62F35F /* ContextMenu+Options.swift */; };
E80E6DDC9FE58EC3B7EC11100268EA08 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6604A7D69453B4569E4E4827FB9155A9 /* Foundation.framework */; };
EC1E21465F6207B9A7B30612B2B2B01B /* ContextMenu+Item.swift in Sources */ = {isa = PBXBuildFile; fileRef = 87D2FD21EA79679A168A5A8C6C819F8D /* ContextMenu+Item.swift */; };
F2C6E55A1C6351BFF3B0CA6567DBF022 /* ContextMenu+ContainerStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 13CC10DCC8B20BE7FA1E83DF91AC1128 /* ContextMenu+ContainerStyle.swift */; };
F4DC47169A4414AEA6C20C8957416137 /* ContextMenu+Animations.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7DB3263FFBBDB53AAAD64847C8A05AD5 /* ContextMenu+Animations.swift */; };
FF75C687ABC833C17BE2CB3DF8B08820 /* ContextMenu+UIViewControllerTransitioningDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 857A884CBACB5A263D36125D985A6C4A /* ContextMenu+UIViewControllerTransitioningDelegate.swift */; };
02E9AA40ECC6B4564EC62116F891DC76 /* UIViewController+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 751F2F213C938F3E6A9575A0FD67168A /* UIViewController+Extensions.swift */; };
11095071DD3D53648F3CC128992B8333 /* ContextMenu.swift in Sources */ = {isa = PBXBuildFile; fileRef = 737C76AED9813E0D19E2A27896F36459 /* ContextMenu.swift */; };
18D9CF0C2963550145BA13C891CFD960 /* ContextMenu-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 91D7CAD090E03E2C174F9EF83EAC4587 /* ContextMenu-dummy.m */; };
2C4DDD9CBFCFC0BD264D7FA7C01EAF0C /* ContextMenu-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = A0A747F12B8E7988EDD934C7A033DBC4 /* ContextMenu-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
2E67AEAE8EE1F3BCB84CE0890CF8D642 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5A16F4CFC63FAC439D7A04994F579A03 /* Foundation.framework */; };
35E090B060F2925C717F296B0F7842C2 /* ContextMenuPresentationController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4BC42761BD127DA085286AECBEBB37EC /* ContextMenuPresentationController.swift */; };
5CBEFDA4E7BB1EF520CC028D84124B54 /* ContextMenu+UIViewControllerTransitioningDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = BF508E93B37F9C2F45A11773AD386B3C /* ContextMenu+UIViewControllerTransitioningDelegate.swift */; };
7060FA503BF5C525BDDEC54B3624FD36 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5A16F4CFC63FAC439D7A04994F579A03 /* Foundation.framework */; };
848EF4ACA5B8B7D8FFA540DC60A31E87 /* ContextMenu+Animations.swift in Sources */ = {isa = PBXBuildFile; fileRef = 15FCCAD9A5DDED0894817AADA3B946EB /* ContextMenu+Animations.swift */; };
9D05DF181B4E73983C6E6503D920FC78 /* CGRect+DominantCorner.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4C804EDD1BF5E0FA33ECD43F5D909B1D /* CGRect+DominantCorner.swift */; };
9F8B60DDA902934C419C778DA8929724 /* SourceViewCorner.swift in Sources */ = {isa = PBXBuildFile; fileRef = CE1D7AD3A532B2787F9FC0E2FFDAD8A9 /* SourceViewCorner.swift */; };
A2940AC65B87B7ED50D677D71A1DFAF9 /* ClippedContainerViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = F09FCB0B854C3436CD1EEFAC834A1C9E /* ClippedContainerViewController.swift */; };
A694D7FF377AFB4515DF3BF97325EA69 /* ContextMenu+MenuStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 864BC7003A5AD292215518FE4B3E4B2F /* ContextMenu+MenuStyle.swift */; };
AD4BAA5251D268476FAC00A34D595612 /* ContextMenu+Position.swift in Sources */ = {isa = PBXBuildFile; fileRef = 78053D3FB7D8F6DA1273F10692CFE48A /* ContextMenu+Position.swift */; };
ADFD37FEC986176A91805CF497755E09 /* Pods-Example-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 1AD65E35A3233FBE6F2EFDEB3D43D114 /* Pods-Example-dummy.m */; };
B5D9F07B4ABAD5CEF2D5040444E97EE4 /* Pods-Example-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 15D3FE98E9F2D34863BD3F3597A0485A /* Pods-Example-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
B9921FF0856E9979A9CD6289D7989758 /* ContextMenuDismissing.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5629DF893AE9ADC7EB0846CAD5566AA4 /* ContextMenuDismissing.swift */; };
CE38A8665DB6F9EF0DC354A32EFE91B2 /* ContextMenuPresenting.swift in Sources */ = {isa = PBXBuildFile; fileRef = E0F6586FC70C036CEF6A89863954FE7C /* ContextMenuPresenting.swift */; };
D41A2C1CC2F357A2C3D2821C5E52A560 /* CGRect+Area.swift in Sources */ = {isa = PBXBuildFile; fileRef = 77F600AD1839C0889B8CDC849F9C5F0E /* CGRect+Area.swift */; };
D798C19ABE216FE3D0449393EBF49945 /* ContextMenu+ContainerStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = BDB805F685E263481822B76878B15FA6 /* ContextMenu+ContainerStyle.swift */; };
DEF164F9C4C525C3C01304388DE6ED07 /* ContextMenuDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E109D03EDD5FC40CC6FB7E89A81549D /* ContextMenuDelegate.swift */; };
F8DED966A4E0F2FB3F99D5277715A361 /* ContextMenu+ContextMenuPresentationControllerDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3A1BE0B9FD51544A41F585796A1B08E5 /* ContextMenu+ContextMenuPresentationControllerDelegate.swift */; };
FDEDE269A48D9D9BCE53C65A49DFCEF7 /* ContextMenu+Options.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8FB90342D11363510757DAC7606FC404 /* ContextMenu+Options.swift */; };
FE428086EB7C7789F6FB55332293A99A /* ContextMenu+Item.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC57094A591155079A2634810C5AEAE8 /* ContextMenu+Item.swift */; };
/* End PBXBuildFile section */
/* Begin PBXContainerItemProxy section */
1BF88884B950C5385334221468581CB7 /* PBXContainerItemProxy */ = {
1110B3E3EAF2C503F0C3DD7924A1B2FE /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */;
proxyType = 1;
remoteGlobalIDString = C55C8E1E0367C61543FC7906E3E7159F;
remoteGlobalIDString = 5E2B6E999791467539657928E8AB2870;
remoteInfo = ContextMenu;
};
/* End PBXContainerItemProxy section */
/* Begin PBXFileReference section */
044AA3E23F71470C9B5F50D44720EA0D /* Pods-Example-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-Example-resources.sh"; sourceTree = "<group>"; };
085E12069DC7842D5F5F89760E8E11D8 /* ContextMenu.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = ContextMenu.xcconfig; sourceTree = "<group>"; };
0E109D03EDD5FC40CC6FB7E89A81549D /* ContextMenuDelegate.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ContextMenuDelegate.swift; path = ContextMenu/ContextMenuDelegate.swift; sourceTree = "<group>"; };
11434BC759D12F57876FBB74A4775E74 /* Pods-Example-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-Example-acknowledgements.plist"; sourceTree = "<group>"; };
13CC10DCC8B20BE7FA1E83DF91AC1128 /* ContextMenu+ContainerStyle.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "ContextMenu+ContainerStyle.swift"; path = "ContextMenu/ContextMenu+ContainerStyle.swift"; sourceTree = "<group>"; };
14925AF7A0EBA4F460F20E4A272FD5C2 /* ContextMenu.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = ContextMenu.xcconfig; sourceTree = "<group>"; };
15D3FE98E9F2D34863BD3F3597A0485A /* Pods-Example-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-Example-umbrella.h"; sourceTree = "<group>"; };
15FCCAD9A5DDED0894817AADA3B946EB /* ContextMenu+Animations.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "ContextMenu+Animations.swift"; path = "ContextMenu/ContextMenu+Animations.swift"; sourceTree = "<group>"; };
1AD65E35A3233FBE6F2EFDEB3D43D114 /* Pods-Example-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-Example-dummy.m"; sourceTree = "<group>"; };
1DEB16962167FB991B230C703581DEB6 /* ContextMenu.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ContextMenu.swift; path = ContextMenu/ContextMenu.swift; sourceTree = "<group>"; };
25A37D4D536CC5988A439441117C41F4 /* Pods-Example.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-Example.modulemap"; sourceTree = "<group>"; };
35ADB0AAAFD77E7FAB3E79DAFD7738CE /* ContextMenu-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "ContextMenu-prefix.pch"; sourceTree = "<group>"; };
3A1BE0B9FD51544A41F585796A1B08E5 /* ContextMenu+ContextMenuPresentationControllerDelegate.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "ContextMenu+ContextMenuPresentationControllerDelegate.swift"; path = "ContextMenu/ContextMenu+ContextMenuPresentationControllerDelegate.swift"; sourceTree = "<group>"; };
3ADE9E5655579DB0F79DC9C80758673C /* Pods-Example-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-Example-acknowledgements.markdown"; sourceTree = "<group>"; };
3F3EFEBDE6702DEFDFFF9D5C6DBC3773 /* Pods-Example-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-Example-frameworks.sh"; sourceTree = "<group>"; };
51F664DAF164C2E3AE93FE182F8CC26B /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
4BC42761BD127DA085286AECBEBB37EC /* ContextMenuPresentationController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ContextMenuPresentationController.swift; path = ContextMenu/ContextMenuPresentationController.swift; sourceTree = "<group>"; };
4C804EDD1BF5E0FA33ECD43F5D909B1D /* CGRect+DominantCorner.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "CGRect+DominantCorner.swift"; path = "ContextMenu/CGRect+DominantCorner.swift"; sourceTree = "<group>"; };
5629DF893AE9ADC7EB0846CAD5566AA4 /* ContextMenuDismissing.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ContextMenuDismissing.swift; path = ContextMenu/ContextMenuDismissing.swift; sourceTree = "<group>"; };
5A16F4CFC63FAC439D7A04994F579A03 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS11.3.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; };
5B81C04F8E84EAE60AE15C8695031A5F /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
6604A7D69453B4569E4E4827FB9155A9 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.3.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; };
6795B06F2AD013A2429B82746F52BE00 /* ContextMenu.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = ContextMenu.modulemap; sourceTree = "<group>"; };
67B629876410BD4AFE53A6624B62F35F /* ContextMenu+Options.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "ContextMenu+Options.swift"; path = "ContextMenu/ContextMenu+Options.swift"; sourceTree = "<group>"; };
6DD3DF68FA265165A9C960C87FA9B555 /* ContextMenu-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "ContextMenu-umbrella.h"; sourceTree = "<group>"; };
7DB3263FFBBDB53AAAD64847C8A05AD5 /* ContextMenu+Animations.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "ContextMenu+Animations.swift"; path = "ContextMenu/ContextMenu+Animations.swift"; sourceTree = "<group>"; };
80691B6A70DF37D3B71B5BE2CBD7887B /* ContextMenuDismissing.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ContextMenuDismissing.swift; path = ContextMenu/ContextMenuDismissing.swift; sourceTree = "<group>"; };
857A884CBACB5A263D36125D985A6C4A /* ContextMenu+UIViewControllerTransitioningDelegate.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "ContextMenu+UIViewControllerTransitioningDelegate.swift"; path = "ContextMenu/ContextMenu+UIViewControllerTransitioningDelegate.swift"; sourceTree = "<group>"; };
87D2FD21EA79679A168A5A8C6C819F8D /* ContextMenu+Item.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "ContextMenu+Item.swift"; path = "ContextMenu/ContextMenu+Item.swift"; sourceTree = "<group>"; };
6C2CEB2A732C57962BAB147129C9E1FF /* ContextMenu-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "ContextMenu-prefix.pch"; sourceTree = "<group>"; };
737C76AED9813E0D19E2A27896F36459 /* ContextMenu.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ContextMenu.swift; path = ContextMenu/ContextMenu.swift; sourceTree = "<group>"; };
751F2F213C938F3E6A9575A0FD67168A /* UIViewController+Extensions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "UIViewController+Extensions.swift"; path = "ContextMenu/UIViewController+Extensions.swift"; sourceTree = "<group>"; };
77F600AD1839C0889B8CDC849F9C5F0E /* CGRect+Area.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "CGRect+Area.swift"; path = "ContextMenu/CGRect+Area.swift"; sourceTree = "<group>"; };
78053D3FB7D8F6DA1273F10692CFE48A /* ContextMenu+Position.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "ContextMenu+Position.swift"; path = "ContextMenu/ContextMenu+Position.swift"; sourceTree = "<group>"; };
7EB82AD154C40F3F2F5A2A10CBB50617 /* ContextMenu.podspec */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; lastKnownFileType = text; path = ContextMenu.podspec; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.ruby; };
864BC7003A5AD292215518FE4B3E4B2F /* ContextMenu+MenuStyle.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "ContextMenu+MenuStyle.swift"; path = "ContextMenu/ContextMenu+MenuStyle.swift"; sourceTree = "<group>"; };
8CA4BC8B1FC7FBDA052E28D7230EEC13 /* Pods_Example.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Pods_Example.framework; path = "Pods-Example.framework"; sourceTree = BUILT_PRODUCTS_DIR; };
8FB90342D11363510757DAC7606FC404 /* ContextMenu+Options.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "ContextMenu+Options.swift"; path = "ContextMenu/ContextMenu+Options.swift"; sourceTree = "<group>"; };
91D7CAD090E03E2C174F9EF83EAC4587 /* ContextMenu-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "ContextMenu-dummy.m"; sourceTree = "<group>"; };
93A4A3777CF96A4AAC1D13BA6DCCEA73 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; lastKnownFileType = text; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; xcLanguageSpecificationIdentifier = xcode.lang.ruby; };
A4C37E5160ADE6D8A8F853EA04A37F16 /* CGRect+Area.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "CGRect+Area.swift"; path = "ContextMenu/CGRect+Area.swift"; sourceTree = "<group>"; };
A0A747F12B8E7988EDD934C7A033DBC4 /* ContextMenu-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "ContextMenu-umbrella.h"; sourceTree = "<group>"; };
A79AC23D5A157FED70D9C53D844B2319 /* Pods-Example.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Example.release.xcconfig"; sourceTree = "<group>"; };
B1B000328F90D8A5D58AF2823DE7572A /* ContextMenu-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "ContextMenu-dummy.m"; sourceTree = "<group>"; };
B3DEBB6D813BE0BF85C08B55C9A26FA7 /* ContextMenu.podspec */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; lastKnownFileType = text; path = ContextMenu.podspec; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.ruby; };
B61C48FECAA4B036403FFB37558F775D /* ContextMenuPresentationController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ContextMenuPresentationController.swift; path = ContextMenu/ContextMenuPresentationController.swift; sourceTree = "<group>"; };
B9EACC934B425B94E0AC66C11F914C5B /* ContextMenu+MenuStyle.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "ContextMenu+MenuStyle.swift"; path = "ContextMenu/ContextMenu+MenuStyle.swift"; sourceTree = "<group>"; };
BE6001925052E73D97C96A90A46182A6 /* README.md */ = {isa = PBXFileReference; includeInIndex = 1; path = README.md; sourceTree = "<group>"; };
BEBD79F00086360DD53480C2D3806E79 /* LICENSE */ = {isa = PBXFileReference; includeInIndex = 1; path = LICENSE; sourceTree = "<group>"; };
C38465B7FAD1178F371BB945E9F0CABD /* ContextMenu+ContextMenuPresentationControllerDelegate.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "ContextMenu+ContextMenuPresentationControllerDelegate.swift"; path = "ContextMenu/ContextMenu+ContextMenuPresentationControllerDelegate.swift"; sourceTree = "<group>"; };
C5B25A99DEC14DE8ED73B2253DA28C61 /* SourceViewCorner.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SourceViewCorner.swift; path = ContextMenu/SourceViewCorner.swift; sourceTree = "<group>"; };
C6C9E30931E91AAE1145FC7B7CFF5698 /* UIViewController+Extensions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "UIViewController+Extensions.swift"; path = "ContextMenu/UIViewController+Extensions.swift"; sourceTree = "<group>"; };
C7384709B9EFCE2A4C4DA7AD397D8C92 /* ContextMenuPresenting.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ContextMenuPresenting.swift; path = ContextMenu/ContextMenuPresenting.swift; sourceTree = "<group>"; };
A80FCB907882BAE1CB1F39D2131E619C /* ContextMenu.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = ContextMenu.modulemap; sourceTree = "<group>"; };
BDB805F685E263481822B76878B15FA6 /* ContextMenu+ContainerStyle.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "ContextMenu+ContainerStyle.swift"; path = "ContextMenu/ContextMenu+ContainerStyle.swift"; sourceTree = "<group>"; };
BEFCDF874BF2FF6EB546A40606E87A7E /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
BF508E93B37F9C2F45A11773AD386B3C /* ContextMenu+UIViewControllerTransitioningDelegate.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "ContextMenu+UIViewControllerTransitioningDelegate.swift"; path = "ContextMenu/ContextMenu+UIViewControllerTransitioningDelegate.swift"; sourceTree = "<group>"; };
C9792695121A60254E7D649C440E8697 /* ContextMenu.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = ContextMenu.framework; path = ContextMenu.framework; sourceTree = BUILT_PRODUCTS_DIR; };
CDDD0FF66B18CA43F3B6D561A5940E28 /* ClippedContainerViewController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ClippedContainerViewController.swift; path = ContextMenu/ClippedContainerViewController.swift; sourceTree = "<group>"; };
E740D7A9F7277862B645221D4138C3C3 /* ContextMenuDelegate.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ContextMenuDelegate.swift; path = ContextMenu/ContextMenuDelegate.swift; sourceTree = "<group>"; };
CC318EABF3CF0F35EFAB8C7C36F49229 /* README.md */ = {isa = PBXFileReference; includeInIndex = 1; path = README.md; sourceTree = "<group>"; };
CE1D7AD3A532B2787F9FC0E2FFDAD8A9 /* SourceViewCorner.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SourceViewCorner.swift; path = ContextMenu/SourceViewCorner.swift; sourceTree = "<group>"; };
D0B48058FD17DFCF7DE268B059B72D5C /* LICENSE */ = {isa = PBXFileReference; includeInIndex = 1; path = LICENSE; sourceTree = "<group>"; };
E0F6586FC70C036CEF6A89863954FE7C /* ContextMenuPresenting.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ContextMenuPresenting.swift; path = ContextMenu/ContextMenuPresenting.swift; sourceTree = "<group>"; };
EC57094A591155079A2634810C5AEAE8 /* ContextMenu+Item.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "ContextMenu+Item.swift"; path = "ContextMenu/ContextMenu+Item.swift"; sourceTree = "<group>"; };
EFC5B2E05B58CD826FD55659BF1D7E39 /* Pods-Example.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Example.debug.xcconfig"; sourceTree = "<group>"; };
F09FCB0B854C3436CD1EEFAC834A1C9E /* ClippedContainerViewController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ClippedContainerViewController.swift; path = ContextMenu/ClippedContainerViewController.swift; sourceTree = "<group>"; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
79521CC87D71A13DEC31294CFEFD6329 /* Frameworks */ = {
A53163ED0590FFF836FE83A4515AF64C /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
E80E6DDC9FE58EC3B7EC11100268EA08 /* Foundation.framework in Frameworks */,
7060FA503BF5C525BDDEC54B3624FD36 /* Foundation.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
81D8A176D77C945E39050D896E977827 /* Frameworks */ = {
A7D072FEA1F70E8CCE90DDA8A60C6D2D /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
32BD703743B0B8B75A5832596BBDD912 /* Foundation.framework in Frameworks */,
2E67AEAE8EE1F3BCB84CE0890CF8D642 /* Foundation.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
0580ACC4C122152002FF1B8CF0368921 /* Development Pods */ = {
isa = PBXGroup;
children = (
8794F8B0DC587EEED3B13E72472956CC /* ContextMenu */,
);
name = "Development Pods";
sourceTree = "<group>";
};
1B5ECB992A56AE0C70DC72D88BB90B05 /* Pods-Example */ = {
isa = PBXGroup;
children = (
@@ -129,6 +125,28 @@
path = "Target Support Files/Pods-Example";
sourceTree = "<group>";
};
3A3F63F51C3A6640D2BCB665D3770FD0 /* Support Files */ = {
isa = PBXGroup;
children = (
A80FCB907882BAE1CB1F39D2131E619C /* ContextMenu.modulemap */,
085E12069DC7842D5F5F89760E8E11D8 /* ContextMenu.xcconfig */,
91D7CAD090E03E2C174F9EF83EAC4587 /* ContextMenu-dummy.m */,
6C2CEB2A732C57962BAB147129C9E1FF /* ContextMenu-prefix.pch */,
A0A747F12B8E7988EDD934C7A033DBC4 /* ContextMenu-umbrella.h */,
BEFCDF874BF2FF6EB546A40606E87A7E /* Info.plist */,
);
name = "Support Files";
path = "Example/Pods/Target Support Files/ContextMenu";
sourceTree = "<group>";
};
5E0D919E635D23B70123790B8308F8EF /* iOS */ = {
isa = PBXGroup;
children = (
5A16F4CFC63FAC439D7A04994F579A03 /* Foundation.framework */,
);
name = iOS;
sourceTree = "<group>";
};
6A4F6A14E3FB951290E4531728B7A461 /* Targets Support Files */ = {
isa = PBXGroup;
children = (
@@ -141,57 +159,21 @@
isa = PBXGroup;
children = (
93A4A3777CF96A4AAC1D13BA6DCCEA73 /* Podfile */,
0580ACC4C122152002FF1B8CF0368921 /* Development Pods */,
ECDF686B03927A415E702AD57016E2F6 /* Development Pods */,
BC3CA7F9E30CC8F7E2DD044DD34432FC /* Frameworks */,
C65033CE272052BFBDCB15610D69AE2B /* Products */,
6A4F6A14E3FB951290E4531728B7A461 /* Targets Support Files */,
);
sourceTree = "<group>";
};
8794F8B0DC587EEED3B13E72472956CC /* ContextMenu */ = {
isa = PBXGroup;
children = (
A4C37E5160ADE6D8A8F853EA04A37F16 /* CGRect+Area.swift */,
CDDD0FF66B18CA43F3B6D561A5940E28 /* ClippedContainerViewController.swift */,
1DEB16962167FB991B230C703581DEB6 /* ContextMenu.swift */,
7DB3263FFBBDB53AAAD64847C8A05AD5 /* ContextMenu+Animations.swift */,
13CC10DCC8B20BE7FA1E83DF91AC1128 /* ContextMenu+ContainerStyle.swift */,
C38465B7FAD1178F371BB945E9F0CABD /* ContextMenu+ContextMenuPresentationControllerDelegate.swift */,
87D2FD21EA79679A168A5A8C6C819F8D /* ContextMenu+Item.swift */,
B9EACC934B425B94E0AC66C11F914C5B /* ContextMenu+MenuStyle.swift */,
67B629876410BD4AFE53A6624B62F35F /* ContextMenu+Options.swift */,
857A884CBACB5A263D36125D985A6C4A /* ContextMenu+UIViewControllerTransitioningDelegate.swift */,
E740D7A9F7277862B645221D4138C3C3 /* ContextMenuDelegate.swift */,
80691B6A70DF37D3B71B5BE2CBD7887B /* ContextMenuDismissing.swift */,
B61C48FECAA4B036403FFB37558F775D /* ContextMenuPresentationController.swift */,
C7384709B9EFCE2A4C4DA7AD397D8C92 /* ContextMenuPresenting.swift */,
C5B25A99DEC14DE8ED73B2253DA28C61 /* SourceViewCorner.swift */,
C6C9E30931E91AAE1145FC7B7CFF5698 /* UIViewController+Extensions.swift */,
C3B321D0DFE0341E590AA911826E73DB /* Pod */,
E3A5658B6566DE9707FF8C366C6CBCAA /* Support Files */,
);
name = ContextMenu;
path = ../..;
sourceTree = "<group>";
};
BC3CA7F9E30CC8F7E2DD044DD34432FC /* Frameworks */ = {
isa = PBXGroup;
children = (
D35AF013A5F0BAD4F32504907A52519E /* iOS */,
5E0D919E635D23B70123790B8308F8EF /* iOS */,
);
name = Frameworks;
sourceTree = "<group>";
};
C3B321D0DFE0341E590AA911826E73DB /* Pod */ = {
isa = PBXGroup;
children = (
B3DEBB6D813BE0BF85C08B55C9A26FA7 /* ContextMenu.podspec */,
BEBD79F00086360DD53480C2D3806E79 /* LICENSE */,
BE6001925052E73D97C96A90A46182A6 /* README.md */,
);
name = Pod;
sourceTree = "<group>";
};
C65033CE272052BFBDCB15610D69AE2B /* Products */ = {
isa = PBXGroup;
children = (
@@ -201,75 +183,82 @@
name = Products;
sourceTree = "<group>";
};
D35AF013A5F0BAD4F32504907A52519E /* iOS */ = {
D3FEB1DBF78EEE305B4327926D56D0B7 /* Pod */ = {
isa = PBXGroup;
children = (
6604A7D69453B4569E4E4827FB9155A9 /* Foundation.framework */,
7EB82AD154C40F3F2F5A2A10CBB50617 /* ContextMenu.podspec */,
D0B48058FD17DFCF7DE268B059B72D5C /* LICENSE */,
CC318EABF3CF0F35EFAB8C7C36F49229 /* README.md */,
);
name = iOS;
name = Pod;
sourceTree = "<group>";
};
E3A5658B6566DE9707FF8C366C6CBCAA /* Support Files */ = {
D95C5A7187BF788A63B53296A9BF6E69 /* ContextMenu */ = {
isa = PBXGroup;
children = (
6795B06F2AD013A2429B82746F52BE00 /* ContextMenu.modulemap */,
14925AF7A0EBA4F460F20E4A272FD5C2 /* ContextMenu.xcconfig */,
B1B000328F90D8A5D58AF2823DE7572A /* ContextMenu-dummy.m */,
35ADB0AAAFD77E7FAB3E79DAFD7738CE /* ContextMenu-prefix.pch */,
6DD3DF68FA265165A9C960C87FA9B555 /* ContextMenu-umbrella.h */,
51F664DAF164C2E3AE93FE182F8CC26B /* Info.plist */,
77F600AD1839C0889B8CDC849F9C5F0E /* CGRect+Area.swift */,
4C804EDD1BF5E0FA33ECD43F5D909B1D /* CGRect+DominantCorner.swift */,
F09FCB0B854C3436CD1EEFAC834A1C9E /* ClippedContainerViewController.swift */,
737C76AED9813E0D19E2A27896F36459 /* ContextMenu.swift */,
15FCCAD9A5DDED0894817AADA3B946EB /* ContextMenu+Animations.swift */,
BDB805F685E263481822B76878B15FA6 /* ContextMenu+ContainerStyle.swift */,
3A1BE0B9FD51544A41F585796A1B08E5 /* ContextMenu+ContextMenuPresentationControllerDelegate.swift */,
EC57094A591155079A2634810C5AEAE8 /* ContextMenu+Item.swift */,
864BC7003A5AD292215518FE4B3E4B2F /* ContextMenu+MenuStyle.swift */,
8FB90342D11363510757DAC7606FC404 /* ContextMenu+Options.swift */,
78053D3FB7D8F6DA1273F10692CFE48A /* ContextMenu+Position.swift */,
BF508E93B37F9C2F45A11773AD386B3C /* ContextMenu+UIViewControllerTransitioningDelegate.swift */,
0E109D03EDD5FC40CC6FB7E89A81549D /* ContextMenuDelegate.swift */,
5629DF893AE9ADC7EB0846CAD5566AA4 /* ContextMenuDismissing.swift */,
4BC42761BD127DA085286AECBEBB37EC /* ContextMenuPresentationController.swift */,
E0F6586FC70C036CEF6A89863954FE7C /* ContextMenuPresenting.swift */,
CE1D7AD3A532B2787F9FC0E2FFDAD8A9 /* SourceViewCorner.swift */,
751F2F213C938F3E6A9575A0FD67168A /* UIViewController+Extensions.swift */,
D3FEB1DBF78EEE305B4327926D56D0B7 /* Pod */,
3A3F63F51C3A6640D2BCB665D3770FD0 /* Support Files */,
);
name = "Support Files";
path = "Example/Pods/Target Support Files/ContextMenu";
name = ContextMenu;
path = ../..;
sourceTree = "<group>";
};
ECDF686B03927A415E702AD57016E2F6 /* Development Pods */ = {
isa = PBXGroup;
children = (
D95C5A7187BF788A63B53296A9BF6E69 /* ContextMenu */,
);
name = "Development Pods";
sourceTree = "<group>";
};
/* End PBXGroup section */
/* Begin PBXHeadersBuildPhase section */
56AA5040B4EFC9CA80BD7B049F73739F /* Headers */ = {
B314DFEC6171AF2CFA4360B29EA59340 /* Headers */ = {
isa = PBXHeadersBuildPhase;
buildActionMask = 2147483647;
files = (
71B3B8136D9A8DACBBD76C3B1272FE02 /* Pods-Example-umbrella.h in Headers */,
2C4DDD9CBFCFC0BD264D7FA7C01EAF0C /* ContextMenu-umbrella.h in Headers */,
);
runOnlyForDeploymentPostprocessing = 0;
};
F56AFF13660BC34583736A3A88E204DA /* Headers */ = {
BEF0062F5D23D905ADF8214D1B7E5FA3 /* Headers */ = {
isa = PBXHeadersBuildPhase;
buildActionMask = 2147483647;
files = (
035CEF32DA4C5D1DCA33C614CEB17913 /* ContextMenu-umbrella.h in Headers */,
B5D9F07B4ABAD5CEF2D5040444E97EE4 /* Pods-Example-umbrella.h in Headers */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXHeadersBuildPhase section */
/* Begin PBXNativeTarget section */
4FFAA6E4EBC948A31BAEED42653BB8D7 /* Pods-Example */ = {
5E2B6E999791467539657928E8AB2870 /* ContextMenu */ = {
isa = PBXNativeTarget;
buildConfigurationList = D3CB2AA0C5C3FD87BE88AEE41588DA13 /* Build configuration list for PBXNativeTarget "Pods-Example" */;
buildConfigurationList = 696BC25BF5D092BA3ED8E71022731E3A /* Build configuration list for PBXNativeTarget "ContextMenu" */;
buildPhases = (
84E87A2BE9D1D93F66EBFD49006C04D4 /* Sources */,
81D8A176D77C945E39050D896E977827 /* Frameworks */,
56AA5040B4EFC9CA80BD7B049F73739F /* Headers */,
);
buildRules = (
);
dependencies = (
B0033F7548FA4B72E658467AF36BE6F9 /* PBXTargetDependency */,
);
name = "Pods-Example";
productName = "Pods-Example";
productReference = 8CA4BC8B1FC7FBDA052E28D7230EEC13 /* Pods_Example.framework */;
productType = "com.apple.product-type.framework";
};
C55C8E1E0367C61543FC7906E3E7159F /* ContextMenu */ = {
isa = PBXNativeTarget;
buildConfigurationList = A502D45AB4BE663E42A273A54BDA227D /* Build configuration list for PBXNativeTarget "ContextMenu" */;
buildPhases = (
99E97415B516C809544EDF048D102187 /* Sources */,
79521CC87D71A13DEC31294CFEFD6329 /* Frameworks */,
F56AFF13660BC34583736A3A88E204DA /* Headers */,
B314DFEC6171AF2CFA4360B29EA59340 /* Headers */,
9E087300EF33695E65E6FD9FA1E9BD2C /* Sources */,
A53163ED0590FFF836FE83A4515AF64C /* Frameworks */,
72125529F380EAE320EE831F9AABB462 /* Resources */,
);
buildRules = (
);
@@ -280,6 +269,25 @@
productReference = C9792695121A60254E7D649C440E8697 /* ContextMenu.framework */;
productType = "com.apple.product-type.framework";
};
77F4FBBC79EAC11DCAB46A37845B6065 /* Pods-Example */ = {
isa = PBXNativeTarget;
buildConfigurationList = 33B191BE7DAF68A5C86E7070C6FA0563 /* Build configuration list for PBXNativeTarget "Pods-Example" */;
buildPhases = (
BEF0062F5D23D905ADF8214D1B7E5FA3 /* Headers */,
F488C695CC7C3992007F22403FAA76B5 /* Sources */,
A7D072FEA1F70E8CCE90DDA8A60C6D2D /* Frameworks */,
7D7989C8E4124470A196135A5694C840 /* Resources */,
);
buildRules = (
);
dependencies = (
F0D4DB0EF51D1B966C7F5A8A4DE6BA94 /* PBXTargetDependency */,
);
name = "Pods-Example";
productName = "Pods-Example";
productReference = 8CA4BC8B1FC7FBDA052E28D7230EEC13 /* Pods_Example.framework */;
productType = "com.apple.product-type.framework";
};
/* End PBXNativeTarget section */
/* Begin PBXProject section */
@@ -301,61 +309,81 @@
projectDirPath = "";
projectRoot = "";
targets = (
C55C8E1E0367C61543FC7906E3E7159F /* ContextMenu */,
4FFAA6E4EBC948A31BAEED42653BB8D7 /* Pods-Example */,
5E2B6E999791467539657928E8AB2870 /* ContextMenu */,
77F4FBBC79EAC11DCAB46A37845B6065 /* Pods-Example */,
);
};
/* End PBXProject section */
/* Begin PBXSourcesBuildPhase section */
84E87A2BE9D1D93F66EBFD49006C04D4 /* Sources */ = {
isa = PBXSourcesBuildPhase;
/* Begin PBXResourcesBuildPhase section */
72125529F380EAE320EE831F9AABB462 /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
40F454BB711499A3B137B3CD6180DCD4 /* Pods-Example-dummy.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
99E97415B516C809544EDF048D102187 /* Sources */ = {
7D7989C8E4124470A196135A5694C840 /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXResourcesBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
9E087300EF33695E65E6FD9FA1E9BD2C /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
457F0B73107CD96C71CAE03029AA8BDC /* CGRect+Area.swift in Sources */,
CCEA546C378D7EBCE8DC42F49AC65F01 /* ClippedContainerViewController.swift in Sources */,
F4DC47169A4414AEA6C20C8957416137 /* ContextMenu+Animations.swift in Sources */,
F2C6E55A1C6351BFF3B0CA6567DBF022 /* ContextMenu+ContainerStyle.swift in Sources */,
5D1AF63F82B9CC3377710DC84424F6C5 /* ContextMenu+ContextMenuPresentationControllerDelegate.swift in Sources */,
EC1E21465F6207B9A7B30612B2B2B01B /* ContextMenu+Item.swift in Sources */,
03C7D3FAC04C2CC8CFC5D8B8B5662F99 /* ContextMenu+MenuStyle.swift in Sources */,
D307CADFFC08A750DF71A1A103EE73CD /* ContextMenu+Options.swift in Sources */,
FF75C687ABC833C17BE2CB3DF8B08820 /* ContextMenu+UIViewControllerTransitioningDelegate.swift in Sources */,
34611D820062FF0D2537BA5BB77FC49F /* ContextMenu-dummy.m in Sources */,
34DE824BF8077EF1C9325550AC2F1367 /* ContextMenu.swift in Sources */,
770FCA2E81351AFFDBBB678E9676AE06 /* ContextMenuDelegate.swift in Sources */,
20D5042ECFA20AA664AAE1E20D77806E /* ContextMenuDismissing.swift in Sources */,
67051657982C7F45AA72807C10028E40 /* ContextMenuPresentationController.swift in Sources */,
2E74EA4FD27725BA605672D98EF5775A /* ContextMenuPresenting.swift in Sources */,
3293BFE2E95182659C0545055872E33A /* SourceViewCorner.swift in Sources */,
C0026F3B533B8B9D029136A90B8FF394 /* UIViewController+Extensions.swift in Sources */,
D41A2C1CC2F357A2C3D2821C5E52A560 /* CGRect+Area.swift in Sources */,
9D05DF181B4E73983C6E6503D920FC78 /* CGRect+DominantCorner.swift in Sources */,
A2940AC65B87B7ED50D677D71A1DFAF9 /* ClippedContainerViewController.swift in Sources */,
848EF4ACA5B8B7D8FFA540DC60A31E87 /* ContextMenu+Animations.swift in Sources */,
D798C19ABE216FE3D0449393EBF49945 /* ContextMenu+ContainerStyle.swift in Sources */,
F8DED966A4E0F2FB3F99D5277715A361 /* ContextMenu+ContextMenuPresentationControllerDelegate.swift in Sources */,
FE428086EB7C7789F6FB55332293A99A /* ContextMenu+Item.swift in Sources */,
A694D7FF377AFB4515DF3BF97325EA69 /* ContextMenu+MenuStyle.swift in Sources */,
FDEDE269A48D9D9BCE53C65A49DFCEF7 /* ContextMenu+Options.swift in Sources */,
AD4BAA5251D268476FAC00A34D595612 /* ContextMenu+Position.swift in Sources */,
5CBEFDA4E7BB1EF520CC028D84124B54 /* ContextMenu+UIViewControllerTransitioningDelegate.swift in Sources */,
18D9CF0C2963550145BA13C891CFD960 /* ContextMenu-dummy.m in Sources */,
11095071DD3D53648F3CC128992B8333 /* ContextMenu.swift in Sources */,
DEF164F9C4C525C3C01304388DE6ED07 /* ContextMenuDelegate.swift in Sources */,
B9921FF0856E9979A9CD6289D7989758 /* ContextMenuDismissing.swift in Sources */,
35E090B060F2925C717F296B0F7842C2 /* ContextMenuPresentationController.swift in Sources */,
CE38A8665DB6F9EF0DC354A32EFE91B2 /* ContextMenuPresenting.swift in Sources */,
9F8B60DDA902934C419C778DA8929724 /* SourceViewCorner.swift in Sources */,
02E9AA40ECC6B4564EC62116F891DC76 /* UIViewController+Extensions.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
F488C695CC7C3992007F22403FAA76B5 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
ADFD37FEC986176A91805CF497755E09 /* Pods-Example-dummy.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXSourcesBuildPhase section */
/* Begin PBXTargetDependency section */
B0033F7548FA4B72E658467AF36BE6F9 /* PBXTargetDependency */ = {
F0D4DB0EF51D1B966C7F5A8A4DE6BA94 /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
name = ContextMenu;
target = C55C8E1E0367C61543FC7906E3E7159F /* ContextMenu */;
targetProxy = 1BF88884B950C5385334221468581CB7 /* PBXContainerItemProxy */;
target = 5E2B6E999791467539657928E8AB2870 /* ContextMenu */;
targetProxy = 1110B3E3EAF2C503F0C3DD7924A1B2FE /* PBXContainerItemProxy */;
};
/* End PBXTargetDependency section */
/* Begin XCBuildConfiguration section */
306B871BA67093DD446E506D7EEE972C /* Debug */ = {
24E0F53C7074090727E0EB243E759458 /* Release */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = EFC5B2E05B58CD826FD55659BF1D7E39 /* Pods-Example.debug.xcconfig */;
baseConfigurationReference = A79AC23D5A157FED70D9C53D844B2319 /* Pods-Example.release.xcconfig */;
buildSettings = {
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO;
CLANG_ENABLE_OBJC_WEAK = NO;
CODE_SIGN_IDENTITY = "";
"CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
@@ -376,7 +404,79 @@
OTHER_LIBTOOLFLAGS = "";
PODS_ROOT = "$(SRCROOT)";
PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}";
PRODUCT_NAME = Pods_Example;
PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
SDKROOT = iphoneos;
SKIP_INSTALL = YES;
SWIFT_COMPILATION_MODE = wholemodule;
SWIFT_OPTIMIZATION_LEVEL = "-O";
TARGETED_DEVICE_FAMILY = "1,2";
VALIDATE_PRODUCT = YES;
VERSIONING_SYSTEM = "apple-generic";
VERSION_INFO_PREFIX = "";
};
name = Release;
};
44FF8B0D014528993FADFBD0A803C5D1 /* Release */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 085E12069DC7842D5F5F89760E8E11D8 /* ContextMenu.xcconfig */;
buildSettings = {
CLANG_ENABLE_OBJC_WEAK = NO;
CODE_SIGN_IDENTITY = "";
"CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
"CODE_SIGN_IDENTITY[sdk=watchos*]" = "";
CURRENT_PROJECT_VERSION = 1;
DEFINES_MODULE = YES;
DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_CURRENT_VERSION = 1;
DYLIB_INSTALL_NAME_BASE = "@rpath";
GCC_PREFIX_HEADER = "Target Support Files/ContextMenu/ContextMenu-prefix.pch";
INFOPLIST_FILE = "Target Support Files/ContextMenu/Info.plist";
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
IPHONEOS_DEPLOYMENT_TARGET = 10.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
MODULEMAP_FILE = "Target Support Files/ContextMenu/ContextMenu.modulemap";
PRODUCT_MODULE_NAME = ContextMenu;
PRODUCT_NAME = ContextMenu;
SDKROOT = iphoneos;
SKIP_INSTALL = YES;
SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) ";
SWIFT_COMPILATION_MODE = wholemodule;
SWIFT_OPTIMIZATION_LEVEL = "-O";
SWIFT_VERSION = 4.2;
TARGETED_DEVICE_FAMILY = "1,2";
VALIDATE_PRODUCT = YES;
VERSIONING_SYSTEM = "apple-generic";
VERSION_INFO_PREFIX = "";
};
name = Release;
};
74BA10E57997F779F2CFE533B31BC1F3 /* Debug */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = EFC5B2E05B58CD826FD55659BF1D7E39 /* Pods-Example.debug.xcconfig */;
buildSettings = {
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO;
CLANG_ENABLE_OBJC_WEAK = NO;
CODE_SIGN_IDENTITY = "";
"CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
"CODE_SIGN_IDENTITY[sdk=watchos*]" = "";
CURRENT_PROJECT_VERSION = 1;
DEFINES_MODULE = YES;
DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_CURRENT_VERSION = 1;
DYLIB_INSTALL_NAME_BASE = "@rpath";
INFOPLIST_FILE = "Target Support Files/Pods-Example/Info.plist";
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
IPHONEOS_DEPLOYMENT_TARGET = 11.2;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
MACH_O_TYPE = staticlib;
MODULEMAP_FILE = "Target Support Files/Pods-Example/Pods-Example.modulemap";
OTHER_LDFLAGS = "";
OTHER_LIBTOOLFLAGS = "";
PODS_ROOT = "$(SRCROOT)";
PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}";
PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
SDKROOT = iphoneos;
SKIP_INSTALL = YES;
SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
@@ -387,7 +487,40 @@
};
name = Debug;
};
323A24856F1A4871A780301AF5C02A2A /* Debug */ = {
7F22AF1AE0A9CF45EE14F802284B53C1 /* Debug */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 085E12069DC7842D5F5F89760E8E11D8 /* ContextMenu.xcconfig */;
buildSettings = {
CLANG_ENABLE_OBJC_WEAK = NO;
CODE_SIGN_IDENTITY = "";
"CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
"CODE_SIGN_IDENTITY[sdk=watchos*]" = "";
CURRENT_PROJECT_VERSION = 1;
DEFINES_MODULE = YES;
DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_CURRENT_VERSION = 1;
DYLIB_INSTALL_NAME_BASE = "@rpath";
GCC_PREFIX_HEADER = "Target Support Files/ContextMenu/ContextMenu-prefix.pch";
INFOPLIST_FILE = "Target Support Files/ContextMenu/Info.plist";
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
IPHONEOS_DEPLOYMENT_TARGET = 10.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
MODULEMAP_FILE = "Target Support Files/ContextMenu/ContextMenu.modulemap";
PRODUCT_MODULE_NAME = ContextMenu;
PRODUCT_NAME = ContextMenu;
SDKROOT = iphoneos;
SKIP_INSTALL = YES;
SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) ";
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
SWIFT_VERSION = 4.2;
TARGETED_DEVICE_FAMILY = "1,2";
VERSIONING_SYSTEM = "apple-generic";
VERSION_INFO_PREFIX = "";
};
name = Debug;
};
7FC7B8135FDED1560A80CA98EC6F7207 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
@@ -419,6 +552,66 @@
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
CODE_SIGNING_ALLOWED = NO;
CODE_SIGNING_REQUIRED = NO;
COPY_PHASE_STRIP = NO;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
ENABLE_NS_ASSERTIONS = NO;
ENABLE_STRICT_OBJC_MSGSEND = YES;
GCC_C_LANGUAGE_STANDARD = gnu11;
GCC_NO_COMMON_BLOCKS = YES;
GCC_PREPROCESSOR_DEFINITIONS = (
"POD_CONFIGURATION_RELEASE=1",
"$(inherited)",
);
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 11.2;
MTL_ENABLE_DEBUG_INFO = NO;
MTL_FAST_MATH = YES;
PRODUCT_NAME = "$(TARGET_NAME)";
STRIP_INSTALLED_PRODUCT = NO;
SYMROOT = "${SRCROOT}/../build";
};
name = Release;
};
B4A339C5C9837FC180FD2D276CBB365A /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_ANALYZER_NONNULL = YES;
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_ENABLE_OBJC_WEAK = YES;
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_COMMA = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
CLANG_WARN_STRICT_PROTOTYPES = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
CODE_SIGNING_ALLOWED = NO;
CODE_SIGNING_REQUIRED = NO;
COPY_PHASE_STRIP = NO;
DEBUG_INFORMATION_FORMAT = dwarf;
@@ -440,200 +633,42 @@
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 11.2;
MTL_ENABLE_DEBUG_INFO = YES;
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
MTL_FAST_MATH = YES;
ONLY_ACTIVE_ARCH = YES;
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = NO_SIGNING/;
STRIP_INSTALLED_PRODUCT = NO;
SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
SYMROOT = "${SRCROOT}/../build";
};
name = Debug;
};
C5E79A630E68B9AF674783B98910A511 /* Debug */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 14925AF7A0EBA4F460F20E4A272FD5C2 /* ContextMenu.xcconfig */;
buildSettings = {
CLANG_ENABLE_OBJC_WEAK = NO;
CODE_SIGN_IDENTITY = "";
"CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
"CODE_SIGN_IDENTITY[sdk=watchos*]" = "";
CURRENT_PROJECT_VERSION = 1;
DEFINES_MODULE = YES;
DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_CURRENT_VERSION = 1;
DYLIB_INSTALL_NAME_BASE = "@rpath";
GCC_PREFIX_HEADER = "Target Support Files/ContextMenu/ContextMenu-prefix.pch";
INFOPLIST_FILE = "Target Support Files/ContextMenu/Info.plist";
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
IPHONEOS_DEPLOYMENT_TARGET = 10.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
MODULEMAP_FILE = "Target Support Files/ContextMenu/ContextMenu.modulemap";
PRODUCT_NAME = ContextMenu;
SDKROOT = iphoneos;
SKIP_INSTALL = YES;
SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) ";
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
SWIFT_VERSION = 4.0;
TARGETED_DEVICE_FAMILY = "1,2";
VERSIONING_SYSTEM = "apple-generic";
VERSION_INFO_PREFIX = "";
};
name = Debug;
};
C72736E31C25E34B154DFAA69EFB6E7F /* Release */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = A79AC23D5A157FED70D9C53D844B2319 /* Pods-Example.release.xcconfig */;
buildSettings = {
CLANG_ENABLE_OBJC_WEAK = NO;
CODE_SIGN_IDENTITY = "";
"CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
"CODE_SIGN_IDENTITY[sdk=watchos*]" = "";
CURRENT_PROJECT_VERSION = 1;
DEFINES_MODULE = YES;
DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_CURRENT_VERSION = 1;
DYLIB_INSTALL_NAME_BASE = "@rpath";
INFOPLIST_FILE = "Target Support Files/Pods-Example/Info.plist";
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
IPHONEOS_DEPLOYMENT_TARGET = 11.2;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
MACH_O_TYPE = staticlib;
MODULEMAP_FILE = "Target Support Files/Pods-Example/Pods-Example.modulemap";
OTHER_LDFLAGS = "";
OTHER_LIBTOOLFLAGS = "";
PODS_ROOT = "$(SRCROOT)";
PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}";
PRODUCT_NAME = Pods_Example;
SDKROOT = iphoneos;
SKIP_INSTALL = YES;
SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
TARGETED_DEVICE_FAMILY = "1,2";
VALIDATE_PRODUCT = YES;
VERSIONING_SYSTEM = "apple-generic";
VERSION_INFO_PREFIX = "";
};
name = Release;
};
CA33F186435244FD0FD5B7325332656C /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_ANALYZER_NONNULL = YES;
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_ENABLE_OBJC_WEAK = YES;
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_COMMA = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
CLANG_WARN_STRICT_PROTOTYPES = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
CODE_SIGNING_REQUIRED = NO;
COPY_PHASE_STRIP = NO;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
ENABLE_NS_ASSERTIONS = NO;
ENABLE_STRICT_OBJC_MSGSEND = YES;
GCC_C_LANGUAGE_STANDARD = gnu11;
GCC_NO_COMMON_BLOCKS = YES;
GCC_PREPROCESSOR_DEFINITIONS = (
"POD_CONFIGURATION_RELEASE=1",
"$(inherited)",
);
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 11.2;
MTL_ENABLE_DEBUG_INFO = NO;
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = NO_SIGNING/;
STRIP_INSTALLED_PRODUCT = NO;
SYMROOT = "${SRCROOT}/../build";
};
name = Release;
};
EE8C5E992045DE682EB6C22D3B679DAE /* Release */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 14925AF7A0EBA4F460F20E4A272FD5C2 /* ContextMenu.xcconfig */;
buildSettings = {
CLANG_ENABLE_OBJC_WEAK = NO;
CODE_SIGN_IDENTITY = "";
"CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
"CODE_SIGN_IDENTITY[sdk=watchos*]" = "";
CURRENT_PROJECT_VERSION = 1;
DEFINES_MODULE = YES;
DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_CURRENT_VERSION = 1;
DYLIB_INSTALL_NAME_BASE = "@rpath";
GCC_PREFIX_HEADER = "Target Support Files/ContextMenu/ContextMenu-prefix.pch";
INFOPLIST_FILE = "Target Support Files/ContextMenu/Info.plist";
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
IPHONEOS_DEPLOYMENT_TARGET = 10.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
MODULEMAP_FILE = "Target Support Files/ContextMenu/ContextMenu.modulemap";
PRODUCT_NAME = ContextMenu;
SDKROOT = iphoneos;
SKIP_INSTALL = YES;
SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) ";
SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
SWIFT_VERSION = 4.0;
TARGETED_DEVICE_FAMILY = "1,2";
VALIDATE_PRODUCT = YES;
VERSIONING_SYSTEM = "apple-generic";
VERSION_INFO_PREFIX = "";
};
name = Release;
};
/* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */
2D8E8EC45A3A1A1D94AE762CB5028504 /* Build configuration list for PBXProject "Pods" */ = {
isa = XCConfigurationList;
buildConfigurations = (
323A24856F1A4871A780301AF5C02A2A /* Debug */,
CA33F186435244FD0FD5B7325332656C /* Release */,
B4A339C5C9837FC180FD2D276CBB365A /* Debug */,
7FC7B8135FDED1560A80CA98EC6F7207 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
A502D45AB4BE663E42A273A54BDA227D /* Build configuration list for PBXNativeTarget "ContextMenu" */ = {
33B191BE7DAF68A5C86E7070C6FA0563 /* Build configuration list for PBXNativeTarget "Pods-Example" */ = {
isa = XCConfigurationList;
buildConfigurations = (
C5E79A630E68B9AF674783B98910A511 /* Debug */,
EE8C5E992045DE682EB6C22D3B679DAE /* Release */,
74BA10E57997F779F2CFE533B31BC1F3 /* Debug */,
24E0F53C7074090727E0EB243E759458 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
D3CB2AA0C5C3FD87BE88AEE41588DA13 /* Build configuration list for PBXNativeTarget "Pods-Example" */ = {
696BC25BF5D092BA3ED8E71022731E3A /* Build configuration list for PBXNativeTarget "ContextMenu" */ = {
isa = XCConfigurationList;
buildConfigurations = (
306B871BA67093DD446E506D7EEE972C /* Debug */,
C72736E31C25E34B154DFAA69EFB6E7F /* Release */,
7F22AF1AE0A9CF45EE14F802284B53C1 /* Debug */,
44FF8B0D014528993FADFBD0A803C5D1 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
@@ -1,6 +1,5 @@
CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/ContextMenu
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Public"
OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS"
PODS_BUILD_DIR = ${BUILD_DIR}
PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
+1 -1
View File
@@ -15,7 +15,7 @@
<key>CFBundlePackageType</key>
<string>FMWK</string>
<key>CFBundleShortVersionString</key>
<string>0.1.0</string>
<string>0.5.0</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
@@ -1,9 +1,18 @@
#!/bin/sh
set -e
set -u
set -o pipefail
if [ -z ${FRAMEWORKS_FOLDER_PATH+x} ]; then
# If FRAMEWORKS_FOLDER_PATH is not set, then there's nowhere for us to copy
# frameworks to, so exit 0 (signalling the script phase was successful).
exit 0
fi
echo "mkdir -p ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
mkdir -p "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
COCOAPODS_PARALLEL_CODE_SIGN="${COCOAPODS_PARALLEL_CODE_SIGN:-false}"
SWIFT_STDLIB_PATH="${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}"
# Used as a return value for each invocation of `strip_invalid_archs` function.
@@ -92,10 +101,10 @@ install_dsym() {
# Signs a framework with the provided identity
code_sign_if_enabled() {
if [ -n "${EXPANDED_CODE_SIGN_IDENTITY}" -a "${CODE_SIGNING_REQUIRED}" != "NO" -a "${CODE_SIGNING_ALLOWED}" != "NO" ]; then
if [ -n "${EXPANDED_CODE_SIGN_IDENTITY}" -a "${CODE_SIGNING_REQUIRED:-}" != "NO" -a "${CODE_SIGNING_ALLOWED}" != "NO" ]; then
# Use the current code_sign_identitiy
echo "Code Signing $1 with Identity ${EXPANDED_CODE_SIGN_IDENTITY_NAME}"
local code_sign_cmd="/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} ${OTHER_CODE_SIGN_FLAGS} --preserve-metadata=identifier,entitlements '$1'"
local code_sign_cmd="/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} ${OTHER_CODE_SIGN_FLAGS:-} --preserve-metadata=identifier,entitlements '$1'"
if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then
code_sign_cmd="$code_sign_cmd &"
@@ -1,5 +1,13 @@
#!/bin/sh
set -e
set -u
set -o pipefail
if [ -z ${UNLOCALIZED_RESOURCES_FOLDER_PATH+x} ]; then
# If UNLOCALIZED_RESOURCES_FOLDER_PATH is not set, then there's nowhere for us to copy
# resources to, so exit 0 (signalling the script phase was successful).
exit 0
fi
mkdir -p "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}"
@@ -12,7 +20,7 @@ XCASSET_FILES=()
# was originally proposed here: https://lists.samba.org/archive/rsync/2008-February/020158.html
RSYNC_PROTECT_TMP_FILES=(--filter "P .*.??????")
case "${TARGETED_DEVICE_FAMILY}" in
case "${TARGETED_DEVICE_FAMILY:-}" in
1,2)
TARGET_DEVICE_ARGS="--target-device ipad --target-device iphone"
;;
@@ -92,7 +100,7 @@ if [[ "${ACTION}" == "install" ]] && [[ "${SKIP_INSTALL}" == "NO" ]]; then
fi
rm -f "$RESOURCES_TO_COPY"
if [[ -n "${WRAPPER_EXTENSION}" ]] && [ "`xcrun --find actool`" ] && [ -n "$XCASSET_FILES" ]
if [[ -n "${WRAPPER_EXTENSION}" ]] && [ "`xcrun --find actool`" ] && [ -n "${XCASSET_FILES:-}" ]
then
# Find all other xcassets (this unfortunately includes those of path pods and other targets).
OTHER_XCASSETS=$(find "$PWD" -iname "*.xcassets" -type d)
@@ -102,5 +110,9 @@ then
fi
done <<<"$OTHER_XCASSETS"
printf "%s\0" "${XCASSET_FILES[@]}" | xargs -0 xcrun actool --output-format human-readable-text --notices --warnings --platform "${PLATFORM_NAME}" --minimum-deployment-target "${!DEPLOYMENT_TARGET_SETTING_NAME}" ${TARGET_DEVICE_ARGS} --compress-pngs --compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}"
if [ -z ${ASSETCATALOG_COMPILER_APPICON_NAME+x} ]; then
printf "%s\0" "${XCASSET_FILES[@]}" | xargs -0 xcrun actool --output-format human-readable-text --notices --warnings --platform "${PLATFORM_NAME}" --minimum-deployment-target "${!DEPLOYMENT_TARGET_SETTING_NAME}" ${TARGET_DEVICE_ARGS} --compress-pngs --compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}"
else
printf "%s\0" "${XCASSET_FILES[@]}" | xargs -0 xcrun actool --output-format human-readable-text --notices --warnings --platform "${PLATFORM_NAME}" --minimum-deployment-target "${!DEPLOYMENT_TARGET_SETTING_NAME}" ${TARGET_DEVICE_ARGS} --compress-pngs --compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" --app-icon "${ASSETCATALOG_COMPILER_APPICON_NAME}" --output-partial-info-plist "${TARGET_TEMP_DIR}/assetcatalog_generated_info_cocoapods.plist"
fi
fi