Compare commits
42 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 172dfc60eb | |||
| 3c40c29561 | |||
| 03c33c46e0 | |||
| 6840577716 | |||
| ba56fa6e7b | |||
| ba476ab2a3 | |||
| 3804deeac5 | |||
| d6757beba1 | |||
| 93921110b1 | |||
| ff7a0ee4a3 | |||
| 33fbfa8667 | |||
| a6956a5027 | |||
| ea4129160a | |||
| 02030429e2 | |||
| 40dffce6e7 | |||
| 5caf267cde | |||
| f0c56680f2 | |||
| 003a04a476 | |||
| 3186f54db5 | |||
| 06297df85f | |||
| cc36499919 | |||
| 0dadf7c8d7 | |||
| d30c57a5a8 | |||
| e7cf153f3c | |||
| 95489cd2bf | |||
| 7bd9f9c408 | |||
| 34f5b61af7 | |||
| b5b8531fa3 | |||
| 59b52e5217 | |||
| 710cb18b83 | |||
| 046d08e2c5 | |||
| 97fc51eb1f | |||
| 82fa81b1ab | |||
| 71d45111c5 | |||
| 8a34ba3126 | |||
| 93e467cef9 | |||
| 188307e095 | |||
| dea9bfd210 | |||
| bac5362e41 | |||
| 4637d95787 | |||
| bc9d777a2c | |||
| 2c51957a05 |
@@ -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
|
||||
+4
-4
@@ -1,12 +1,12 @@
|
||||
Pod::Spec.new do |spec|
|
||||
spec.name = 'ContextMenu'
|
||||
spec.version = '0.1.0'
|
||||
spec.version = '0.5.1'
|
||||
spec.license = { :type => 'MIT' }
|
||||
spec.homepage = 'https://github.com/GitHawkApp/ContextMenu'
|
||||
spec.authors = { 'Ryan Nystrom' => 'rnystrom@whoisryannystrom.com' }
|
||||
spec.summary = 'Context menu inspired by Things 3.'
|
||||
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'
|
||||
end
|
||||
spec.platform = :ios, '9.0'
|
||||
spec.swift_version = '4.2'
|
||||
end
|
||||
|
||||
@@ -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 */; };
|
||||
@@ -22,10 +23,27 @@
|
||||
2971CE96205453D900342296 /* SourceViewCorner.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2971CE88205453D900342296 /* SourceViewCorner.swift */; };
|
||||
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 */; };
|
||||
9DAB381F21E10EB600567709 /* ContextMenu+HapticFeedbackStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9DAB381E21E10EB600567709 /* ContextMenu+HapticFeedbackStyle.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>"; };
|
||||
@@ -43,6 +61,13 @@
|
||||
2971CE88205453D900342296 /* SourceViewCorner.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SourceViewCorner.swift; sourceTree = "<group>"; };
|
||||
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>"; };
|
||||
9DAB381E21E10EB600567709 /* ContextMenu+HapticFeedbackStyle.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "ContextMenu+HapticFeedbackStyle.swift"; sourceTree = "<group>"; };
|
||||
DE5D838A2055D72A0069A81D /* UIViewController+Extensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIViewController+Extensions.swift"; sourceTree = "<group>"; };
|
||||
/* End PBXFileReference section */
|
||||
|
||||
@@ -54,6 +79,14 @@
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
2991418120BC757000B63A3B /* Frameworks */ = {
|
||||
isa = PBXFrameworksBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
2991418920BC757100B63A3B /* ContextMenu.framework in Frameworks */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXFrameworksBuildPhase section */
|
||||
|
||||
/* Begin PBXGroup section */
|
||||
@@ -61,6 +94,7 @@
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
2971CE742054539900342296 /* ContextMenu */,
|
||||
2991418520BC757100B63A3B /* ContextMenuTests */,
|
||||
2971CE732054539900342296 /* Products */,
|
||||
);
|
||||
sourceTree = "<group>";
|
||||
@@ -69,6 +103,7 @@
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
2971CE722054539900342296 /* ContextMenu.framework */,
|
||||
2991418420BC757000B63A3B /* ContextMenuTests.xctest */,
|
||||
);
|
||||
name = Products;
|
||||
sourceTree = "<group>";
|
||||
@@ -77,16 +112,20 @@
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
2971CE8A205453D900342296 /* CGRect+Area.swift */,
|
||||
2991418F20BC77FA00B63A3B /* CGRect+DominantCorner.swift */,
|
||||
2971CE87205453D900342296 /* ClippedContainerViewController.swift */,
|
||||
2971CE752054539900342296 /* ContextMenu.h */,
|
||||
2971CE84205453D900342296 /* ContextMenu.swift */,
|
||||
2971CE83205453D900342296 /* ContextMenu+Animations.swift */,
|
||||
2971CE80205453D800342296 /* ContextMenu+ContainerStyle.swift */,
|
||||
2971CE85205453D900342296 /* ContextMenu+ContextMenuPresentationControllerDelegate.swift */,
|
||||
9DAB381E21E10EB600567709 /* ContextMenu+HapticFeedbackStyle.swift */,
|
||||
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 */,
|
||||
2971CE7D205453D800342296 /* ContextMenuPresentationController.swift */,
|
||||
2971CE89205453D900342296 /* ContextMenuPresenting.swift */,
|
||||
@@ -97,6 +136,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 */
|
||||
@@ -129,13 +178,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 = {
|
||||
@@ -143,6 +211,11 @@
|
||||
LastSwiftMigration = 0920;
|
||||
ProvisioningStyle = Automatic;
|
||||
};
|
||||
2991418320BC757000B63A3B = {
|
||||
CreatedOnToolsVersion = 9.3;
|
||||
LastSwiftMigration = 1000;
|
||||
ProvisioningStyle = Automatic;
|
||||
};
|
||||
};
|
||||
};
|
||||
buildConfigurationList = 2971CE6C2054539900342296 /* Build configuration list for PBXProject "ContextMenu" */;
|
||||
@@ -158,6 +231,7 @@
|
||||
projectRoot = "";
|
||||
targets = (
|
||||
2971CE712054539900342296 /* ContextMenu */,
|
||||
2991418320BC757000B63A3B /* ContextMenuTests */,
|
||||
);
|
||||
};
|
||||
/* End PBXProject section */
|
||||
@@ -170,6 +244,13 @@
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
2991418220BC757000B63A3B /* Resources */ = {
|
||||
isa = PBXResourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXResourcesBuildPhase section */
|
||||
|
||||
/* Begin PBXSourcesBuildPhase section */
|
||||
@@ -180,23 +261,44 @@
|
||||
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 */,
|
||||
9DAB381F21E10EB600567709 /* ContextMenu+HapticFeedbackStyle.swift in Sources */,
|
||||
2971CE8E205453D900342296 /* ContextMenu+ContainerStyle.swift in Sources */,
|
||||
DE5D838B2055D72A0069A81D /* UIViewController+Extensions.swift in Sources */,
|
||||
2971CE95205453D900342296 /* ClippedContainerViewController.swift in Sources */,
|
||||
298D3AEE205B398500EDFB66 /* ContextMenuDelegate.swift in Sources */,
|
||||
2971CE96205453D900342296 /* SourceViewCorner.swift in Sources */,
|
||||
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;
|
||||
@@ -212,6 +314,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;
|
||||
@@ -219,6 +322,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;
|
||||
@@ -272,6 +376,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;
|
||||
@@ -279,6 +384,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;
|
||||
@@ -318,18 +424,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;
|
||||
@@ -341,17 +449,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;
|
||||
@@ -377,6 +523,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"
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
}
|
||||
@@ -10,12 +10,19 @@ import UIKit
|
||||
|
||||
class ClippedContainerViewController: UIViewController {
|
||||
|
||||
let viewController: UIViewController
|
||||
|
||||
private let options: ContextMenu.Options
|
||||
private let containedViewController: UINavigationController
|
||||
private let containedViewController: ModalNavigationViewController
|
||||
|
||||
override var preferredStatusBarStyle: UIStatusBarStyle {
|
||||
return viewController.preferredStatusBarStyle
|
||||
}
|
||||
|
||||
init(options: ContextMenu.Options, viewController: UIViewController) {
|
||||
self.viewController = viewController
|
||||
self.options = options
|
||||
self.containedViewController = UINavigationController(rootViewController: viewController)
|
||||
self.containedViewController = ModalNavigationViewController(rootViewController: viewController)
|
||||
super.init(nibName: nil, bundle: nil)
|
||||
self.containedViewController.delegate = self
|
||||
}
|
||||
@@ -29,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
|
||||
@@ -64,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
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
//
|
||||
// ContextMenu+HapticFeedbackStyle.swift
|
||||
// ContextMenu
|
||||
//
|
||||
// Created by Abdurahim Jauzee on 31/12/2018.
|
||||
//
|
||||
|
||||
import Foundation
|
||||
|
||||
public extension ContextMenu {
|
||||
|
||||
/// Haptic Feedback types.
|
||||
public enum HapticFeedbackStyle: Int {
|
||||
case light, medium, heavy
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -16,15 +16,18 @@ extension ContextMenu {
|
||||
let viewController: ClippedContainerViewController
|
||||
|
||||
weak var sourceView: UIView?
|
||||
weak var delegate: ContextMenuDelegate?
|
||||
|
||||
init(
|
||||
viewController: UIViewController,
|
||||
options: Options,
|
||||
sourceView: UIView?
|
||||
sourceView: UIView?,
|
||||
delegate: ContextMenuDelegate?
|
||||
) {
|
||||
self.viewController = ClippedContainerViewController(options: options, viewController: viewController)
|
||||
self.options = options
|
||||
self.sourceView = sourceView
|
||||
self.delegate = delegate
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -23,18 +23,23 @@ extension ContextMenu {
|
||||
let menuStyle: MenuStyle
|
||||
|
||||
/// Trigger haptic feedback when the menu is shown.
|
||||
let haptics: Bool
|
||||
let hapticsStyle: HapticFeedbackStyle?
|
||||
|
||||
/// 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: HapticFeedbackStyle? = nil,
|
||||
position: Position = .default
|
||||
) {
|
||||
self.durations = durations
|
||||
self.containerStyle = containerStyle
|
||||
self.menuStyle = menuStyle
|
||||
self.haptics = haptics
|
||||
self.hapticsStyle = hapticsStyle
|
||||
self.position = position
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -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.
|
||||
///
|
||||
@@ -25,29 +25,34 @@ public class ContextMenu: NSObject {
|
||||
/// - viewController: A content view controller to use inside the menu.
|
||||
/// - options: Display and behavior options for a menu.
|
||||
/// - sourceView: A source view for menu context. If nil, menu displays from the center of the screen.
|
||||
/// - delegate: A delegate the receives events when the menu changes.
|
||||
public func show(
|
||||
sourceViewController: UIViewController,
|
||||
viewController: UIViewController,
|
||||
options: Options = Options(),
|
||||
sourceView: UIView? = nil
|
||||
sourceView: UIView? = nil,
|
||||
delegate: ContextMenuDelegate? = nil
|
||||
) {
|
||||
if let previous = self.item {
|
||||
previous.viewController.dismiss(animated: false)
|
||||
}
|
||||
|
||||
if options.haptics {
|
||||
if #available(iOS 10, *), let raw = options.hapticsStyle?.rawValue, let feedbackStyle = UIImpactFeedbackGenerator.FeedbackStyle(rawValue: raw) {
|
||||
let haptics = UIImpactFeedbackGenerator(style: feedbackStyle)
|
||||
haptics.impactOccurred()
|
||||
}
|
||||
|
||||
let item = Item(
|
||||
viewController: viewController,
|
||||
options: options,
|
||||
sourceView: sourceView
|
||||
sourceView: sourceView,
|
||||
delegate: delegate
|
||||
)
|
||||
self.item = item
|
||||
|
||||
item.viewController.transitioningDelegate = self
|
||||
item.viewController.modalPresentationStyle = .custom
|
||||
item.viewController.modalPresentationCapturesStatusBarAppearance = true
|
||||
sourceViewController.present(item.viewController, animated: true)
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
//
|
||||
// ContextMenuDelegate.swift
|
||||
// ContextMenu
|
||||
//
|
||||
// Created by Ryan Nystrom on 3/15/18.
|
||||
// Copyright © 2018 Ryan Nystrom. All rights reserved.
|
||||
//
|
||||
|
||||
import UIKit
|
||||
|
||||
public protocol ContextMenuDelegate: class {
|
||||
func contextMenuWillDismiss(viewController: UIViewController, animated: Bool)
|
||||
func contextMenuDidDismiss(viewController: UIViewController, animated: Bool)
|
||||
}
|
||||
@@ -19,9 +19,14 @@ class ContextMenuDismissing: NSObject, UIViewControllerAnimatedTransitioning {
|
||||
func animateTransition(using transitionContext: UIViewControllerContextTransitioning) {
|
||||
guard let fromViewController = transitionContext.viewController(forKey: .from) else { return }
|
||||
|
||||
let delegate = item.delegate
|
||||
let viewController = item.viewController.viewController
|
||||
let animated = transitionContext.isAnimated
|
||||
delegate?.contextMenuWillDismiss(viewController: viewController, animated: animated)
|
||||
UIView.animate(withDuration: transitionDuration(using: transitionContext), animations: {
|
||||
fromViewController.view.alpha = 0
|
||||
}) { _ in
|
||||
delegate?.contextMenuDidDismiss(viewController: viewController, animated: animated)
|
||||
transitionContext.completeTransition(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() {
|
||||
@@ -92,9 +105,19 @@ class ContextMenuPresentationController: UIPresentationController {
|
||||
var presentedViewTransform: CATransform3D {
|
||||
let translate: CATransform3D
|
||||
if let corner = preferredSourceViewCorner {
|
||||
let point: CGPoint
|
||||
if case .centerX = item.options.position,
|
||||
let sourceView = item.sourceView,
|
||||
let containerView = self.containerView,
|
||||
let center = sourceView.superview?.convert(sourceView.center, to: containerView) {
|
||||
point = center
|
||||
} else {
|
||||
point = corner.point
|
||||
}
|
||||
|
||||
let frame = frameOfPresentedViewInContainerView
|
||||
let center = CGPoint(x: frame.minX + frame.width / 2, y: frame.minY + frame.height / 2)
|
||||
translate = CATransform3DMakeTranslation(corner.point.x - center.x, corner.point.y - center.y, 0)
|
||||
translate = CATransform3DMakeTranslation(point.x - center.x, point.y - center.y, 0)
|
||||
} else {
|
||||
translate = CATransform3DIdentity
|
||||
}
|
||||
@@ -158,4 +181,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()
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -17,17 +17,20 @@ extension UIViewController {
|
||||
/// - viewController: A content view controller to use inside the menu.
|
||||
/// - options: Display and behavior options for a menu.
|
||||
/// - sourceView: A source view for menu context. If nil, menu displays from the center of the screen.
|
||||
/// - delegate: A delegate the receives events when the menu changes.
|
||||
public func showContextualMenu(
|
||||
_ viewController: UIViewController,
|
||||
options: ContextMenu.Options = ContextMenu.Options(),
|
||||
sourceView: UIView? = nil
|
||||
sourceView: UIView? = nil,
|
||||
delegate: ContextMenuDelegate? = nil
|
||||
) {
|
||||
|
||||
ContextMenu.shared.show(
|
||||
sourceViewController: self,
|
||||
viewController: viewController,
|
||||
options: options,
|
||||
sourceView: sourceView
|
||||
sourceView: sourceView,
|
||||
delegate: delegate
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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))
|
||||
}
|
||||
|
||||
}
|
||||
@@ -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>
|
||||
@@ -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 = (
|
||||
);
|
||||
@@ -121,11 +123,12 @@
|
||||
isa = PBXProject;
|
||||
attributes = {
|
||||
LastSwiftUpdateCheck = 0920;
|
||||
LastUpgradeCheck = 0920;
|
||||
LastUpgradeCheck = 1010;
|
||||
ORGANIZATIONNAME = "Ryan Nystrom";
|
||||
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 */,
|
||||
@@ -262,6 +251,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;
|
||||
@@ -366,7 +356,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 +372,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>
|
||||
@@ -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
|
||||
}
|
||||
|
||||
@@ -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()
|
||||
}
|
||||
|
||||
}
|
||||
@@ -9,10 +9,11 @@
|
||||
import UIKit
|
||||
import ContextMenu
|
||||
|
||||
class ViewController: UIViewController {
|
||||
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,10 +28,35 @@ class ViewController: UIViewController {
|
||||
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),
|
||||
sourceView: button
|
||||
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) {
|
||||
print("will dismiss")
|
||||
}
|
||||
|
||||
func contextMenuDidDismiss(viewController: UIViewController, animated: Bool) {
|
||||
print("did dismiss")
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
platform :ios, '9.0'
|
||||
|
||||
target 'Example' do
|
||||
use_frameworks!
|
||||
pod 'ContextMenu', :path => '../ContextMenu.podspec'
|
||||
|
||||
@@ -1,16 +1,16 @@
|
||||
PODS:
|
||||
- ContextMenu (0.1.0)
|
||||
- ContextMenu (0.5.1)
|
||||
|
||||
DEPENDENCIES:
|
||||
- ContextMenu (from `../ContextMenu.podspec`)
|
||||
|
||||
EXTERNAL SOURCES:
|
||||
ContextMenu:
|
||||
:path: ../ContextMenu.podspec
|
||||
:path: "../ContextMenu.podspec"
|
||||
|
||||
SPEC CHECKSUMS:
|
||||
ContextMenu: f542992e2dd56e8a116a59a2ab5a215637982744
|
||||
ContextMenu: accf2c0d0d91ad7c573fcd9863a1fd339d1cf980
|
||||
|
||||
PODFILE CHECKSUM: aa060c7f3a10a9cb8b2633f1297c22bb65e4f54d
|
||||
PODFILE CHECKSUM: a25bcff99b093889f3fc3097941235bb4adeee58
|
||||
|
||||
COCOAPODS: 1.4.0
|
||||
COCOAPODS: 1.5.3
|
||||
|
||||
+4
-4
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "ContextMenu",
|
||||
"version": "0.1.0",
|
||||
"version": "0.5.1",
|
||||
"license": {
|
||||
"type": "MIT"
|
||||
},
|
||||
@@ -11,11 +11,11 @@
|
||||
"summary": "Context menu inspired by Things 3.",
|
||||
"source": {
|
||||
"git": "https://github.com/GitHawkApp/ContextMenu.git",
|
||||
"tag": "#{s.version}"
|
||||
"tag": "0.5.1"
|
||||
},
|
||||
"source_files": "ContextMenu/*.swift",
|
||||
"platforms": {
|
||||
"ios": "10.0"
|
||||
"ios": "9.0"
|
||||
},
|
||||
"swift_version": "4.0"
|
||||
"swift_version": "4.2"
|
||||
}
|
||||
|
||||
Generated
+5
-5
@@ -1,16 +1,16 @@
|
||||
PODS:
|
||||
- ContextMenu (0.1.0)
|
||||
- ContextMenu (0.5.1)
|
||||
|
||||
DEPENDENCIES:
|
||||
- ContextMenu (from `../ContextMenu.podspec`)
|
||||
|
||||
EXTERNAL SOURCES:
|
||||
ContextMenu:
|
||||
:path: ../ContextMenu.podspec
|
||||
:path: "../ContextMenu.podspec"
|
||||
|
||||
SPEC CHECKSUMS:
|
||||
ContextMenu: f542992e2dd56e8a116a59a2ab5a215637982744
|
||||
ContextMenu: accf2c0d0d91ad7c573fcd9863a1fd339d1cf980
|
||||
|
||||
PODFILE CHECKSUM: aa060c7f3a10a9cb8b2633f1297c22bb65e4f54d
|
||||
PODFILE CHECKSUM: a25bcff99b093889f3fc3097941235bb4adeee58
|
||||
|
||||
COCOAPODS: 1.4.0
|
||||
COCOAPODS: 1.5.3
|
||||
|
||||
+393
-352
@@ -7,92 +7,102 @@
|
||||
objects = {
|
||||
|
||||
/* Begin PBXBuildFile section */
|
||||
29004463EA77E281BC76D155ADB9020F /* ContextMenuPresenting.swift in Sources */ = {isa = PBXBuildFile; fileRef = 248C9B4FF0D3F81A06280C402C567D88 /* ContextMenuPresenting.swift */; };
|
||||
31B67E27C8932833B5F23A70D2A1A18F /* ContextMenu+ContextMenuPresentationControllerDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2E9625EE0940E5B6D28DE87B9A9AA394 /* ContextMenu+ContextMenuPresentationControllerDelegate.swift */; };
|
||||
32BD703743B0B8B75A5832596BBDD912 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6604A7D69453B4569E4E4827FB9155A9 /* Foundation.framework */; };
|
||||
3363E5B3A2FD80DD2F523DEA110AD23D /* ClippedContainerViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = E7A3903BCCBC56DE7698C23F1B9D7025 /* ClippedContainerViewController.swift */; };
|
||||
40F454BB711499A3B137B3CD6180DCD4 /* Pods-Example-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 1AD65E35A3233FBE6F2EFDEB3D43D114 /* Pods-Example-dummy.m */; };
|
||||
511F9D7A1F1A172CA89DD401A12E442E /* ContextMenuPresentationController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4372D257F4D95B7947C8B75C44589837 /* ContextMenuPresentationController.swift */; };
|
||||
53B0CE3D9CAB2490DB94E726AA469C4B /* ContextMenu+ContainerStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6F09346CD57031C9F4615B373489CCB0 /* ContextMenu+ContainerStyle.swift */; };
|
||||
5789B58F3338651E84452B085E2CC7AA /* ContextMenuDismissing.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4458DFE4EB0642A02F5AFCD928B409F7 /* ContextMenuDismissing.swift */; };
|
||||
6044456AABCB0211A94A96C4E7C41CF4 /* ContextMenu+Item.swift in Sources */ = {isa = PBXBuildFile; fileRef = 71DDD555C4F32B86F69F2CCE692E87C1 /* ContextMenu+Item.swift */; };
|
||||
6B13209979CF19E1E726F7059AE91A89 /* ContextMenu+UIViewControllerTransitioningDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 15DBAFC09AB1344CE2E45DEE323F5406 /* ContextMenu+UIViewControllerTransitioningDelegate.swift */; };
|
||||
71B3B8136D9A8DACBBD76C3B1272FE02 /* Pods-Example-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 15D3FE98E9F2D34863BD3F3597A0485A /* Pods-Example-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||
75A781BF4CB0EDE380DD15E4D504B69D /* ContextMenu+Options.swift in Sources */ = {isa = PBXBuildFile; fileRef = 474D16CA3C348A373EFF57AD26B722F2 /* ContextMenu+Options.swift */; };
|
||||
8BA5F415846C5CDFB898F992F514425D /* ContextMenu-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 7F35176CEE9BAAD80281A0DF595B0D25 /* ContextMenu-dummy.m */; };
|
||||
A912935A70F53FE5706F816CA00A1B87 /* ContextMenu+Animations.swift in Sources */ = {isa = PBXBuildFile; fileRef = A99C513A5107C353567935F9D81AA652 /* ContextMenu+Animations.swift */; };
|
||||
B249B66E738181ADC06D5F535E15ACB4 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6604A7D69453B4569E4E4827FB9155A9 /* Foundation.framework */; };
|
||||
B495981AA0156AED9F5AFF5427AC4B99 /* SourceViewCorner.swift in Sources */ = {isa = PBXBuildFile; fileRef = 333B6A8DDD5E59721593B55968D63FAB /* SourceViewCorner.swift */; };
|
||||
C688343B3B6107C07545D1AB5A931DF3 /* ContextMenu-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = C3EAB79C04F9B0D923F8793CFDA2DD07 /* ContextMenu-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||
E119E1F08583FB65F0EEA26D35A963A2 /* ContextMenu+MenuStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 62168363D7BF0CE18A35DC197FA28EE2 /* ContextMenu+MenuStyle.swift */; };
|
||||
EBC0F04EB8E02903FAF43834427C054B /* CGRect+Area.swift in Sources */ = {isa = PBXBuildFile; fileRef = E9E5199A0158EA7B553B582999281E75 /* CGRect+Area.swift */; };
|
||||
EBDF697639505492990E5BBA82E23F14 /* ContextMenu.swift in Sources */ = {isa = PBXBuildFile; fileRef = 083F96FBD20FBEB55E326904926AB872 /* ContextMenu.swift */; };
|
||||
1762FA1D64C9EA83E43695B04046D72C /* ContextMenu-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 38829E861C7A5A79D6B35B8C49650A3E /* ContextMenu-dummy.m */; };
|
||||
25FAD1B93EB6099D10589D5EFD1BB528 /* SourceViewCorner.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9C3FF79DFFBBA1D6E050BA6DD95788A5 /* SourceViewCorner.swift */; };
|
||||
2E261D8951F05E27C7945DBC4CE35B2D /* UIViewController+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 445E749697DB5AEE7FC3F4841F6DE0DA /* UIViewController+Extensions.swift */; };
|
||||
33C17B57DD98CF3837D8C1FCD76767F4 /* ContextMenuPresentationController.swift in Sources */ = {isa = PBXBuildFile; fileRef = C349124E46646C82972F9FF68CDD12D4 /* ContextMenuPresentationController.swift */; };
|
||||
4E1281ED2D828ACB4807EE44A53F2189 /* CGRect+DominantCorner.swift in Sources */ = {isa = PBXBuildFile; fileRef = A98CB7089CDA4C03885C7A7628170ECB /* CGRect+DominantCorner.swift */; };
|
||||
5CFDA4EAAE83A6232A8E22F03DBC40AF /* ContextMenuDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = F606139C50020CE85C9D913244EEBAAC /* ContextMenuDelegate.swift */; };
|
||||
5D9AFF3F736A1604CA52682110F71BDD /* ContextMenuPresenting.swift in Sources */ = {isa = PBXBuildFile; fileRef = F980C8F605345A85D53A349D382A270E /* ContextMenuPresenting.swift */; };
|
||||
69016883573481E5C0CF71F8B94E880B /* ContextMenu+Animations.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2010C37F99B1D9F53B215618BF437365 /* ContextMenu+Animations.swift */; };
|
||||
6A5684F938152D3506C3216F758B0C6E /* ContextMenu+HapticFeedbackStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = F04F338A7AAB7F2AAD2563869060CFFF /* ContextMenu+HapticFeedbackStyle.swift */; };
|
||||
6B82E6893AA2851DBC204FB59DC068F9 /* ContextMenu+UIViewControllerTransitioningDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 25B9D0212278FC8335064C39FBEF3405 /* ContextMenu+UIViewControllerTransitioningDelegate.swift */; };
|
||||
6F7ED43213C40DC8E7B12B9AEDAC6CDB /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D6DFF15000AFE2A371BF499E7AFDA808 /* Foundation.framework */; };
|
||||
7008E5A7B07EAB25B91A54BCC547B742 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D6DFF15000AFE2A371BF499E7AFDA808 /* Foundation.framework */; };
|
||||
7CF47DAA64CE623A0E3CAA6AD53CA021 /* ContextMenu+Options.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29C92A6F62E6FC58B8F2AD827907A9DD /* ContextMenu+Options.swift */; };
|
||||
85FFA9F18C6BF668306A7B4B400C0262 /* ContextMenu+Item.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7B75D25C2F0D595ACD83E2E8B78A2A5 /* ContextMenu+Item.swift */; };
|
||||
881A1FCDB0A4F8C87F11F91BB80CC55F /* ContextMenuDismissing.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9E394A1C4433BACFDC1EFD53AE6AA1A1 /* ContextMenuDismissing.swift */; };
|
||||
A2FE3EF8AF416B75494BF9FF060E4EA5 /* ContextMenu.swift in Sources */ = {isa = PBXBuildFile; fileRef = FB66205F175B125DD11F715D65363A57 /* ContextMenu.swift */; };
|
||||
A7431A52901D9D1F55E591670E9335EA /* ContextMenu+MenuStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 876DCA2D18C8998768EC4272EF6B6CBF /* ContextMenu+MenuStyle.swift */; };
|
||||
ADFD37FEC986176A91805CF497755E09 /* Pods-Example-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 1AD65E35A3233FBE6F2EFDEB3D43D114 /* Pods-Example-dummy.m */; };
|
||||
AE6D51C2B4F01A4F077279406F6B7C5C /* ContextMenu+ContextMenuPresentationControllerDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = EBC710C61697A9A12EE4823B62569E48 /* ContextMenu+ContextMenuPresentationControllerDelegate.swift */; };
|
||||
B5D9F07B4ABAD5CEF2D5040444E97EE4 /* Pods-Example-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 15D3FE98E9F2D34863BD3F3597A0485A /* Pods-Example-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||
C9A4035570C67B3137D516D7F6457804 /* ContextMenu-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = E822CED64132958D534ABC6094B80D7D /* ContextMenu-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||
CEED614FDA917A5778CE1678D45D0CB2 /* ClippedContainerViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 72B731B7406B5FB223B95C8D36309BBE /* ClippedContainerViewController.swift */; };
|
||||
D30D3F17F8913638A1EAED39373A58ED /* CGRect+Area.swift in Sources */ = {isa = PBXBuildFile; fileRef = FEE4BE52E19F9F634AA5736C2782A20A /* CGRect+Area.swift */; };
|
||||
F55C7F10DB0820665BC117C4698A2523 /* ContextMenu+Position.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1EC5896B29B2087FD130784F9CF89023 /* ContextMenu+Position.swift */; };
|
||||
FCE8B9C90749DB70C5E308FCCB79ED11 /* ContextMenu+ContainerStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7499EE098FDBE5A28E76D0446AF58AC0 /* ContextMenu+ContainerStyle.swift */; };
|
||||
/* End PBXBuildFile section */
|
||||
|
||||
/* Begin PBXContainerItemProxy section */
|
||||
1BF88884B950C5385334221468581CB7 /* PBXContainerItemProxy */ = {
|
||||
1110B3E3EAF2C503F0C3DD7924A1B2FE /* PBXContainerItemProxy */ = {
|
||||
isa = PBXContainerItemProxy;
|
||||
containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */;
|
||||
proxyType = 1;
|
||||
remoteGlobalIDString = 94E34967574FD8A9203CFB4086EA7849;
|
||||
remoteGlobalIDString = 772CC5B8F6E9961EEBBB1A85F0F22555;
|
||||
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>"; };
|
||||
083F96FBD20FBEB55E326904926AB872 /* ContextMenu.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ContextMenu.swift; path = ContextMenu/ContextMenu.swift; sourceTree = "<group>"; };
|
||||
11434BC759D12F57876FBB74A4775E74 /* Pods-Example-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-Example-acknowledgements.plist"; sourceTree = "<group>"; };
|
||||
15D3FE98E9F2D34863BD3F3597A0485A /* Pods-Example-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-Example-umbrella.h"; sourceTree = "<group>"; };
|
||||
15DBAFC09AB1344CE2E45DEE323F5406 /* ContextMenu+UIViewControllerTransitioningDelegate.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "ContextMenu+UIViewControllerTransitioningDelegate.swift"; path = "ContextMenu/ContextMenu+UIViewControllerTransitioningDelegate.swift"; sourceTree = "<group>"; };
|
||||
1AD65E35A3233FBE6F2EFDEB3D43D114 /* Pods-Example-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-Example-dummy.m"; sourceTree = "<group>"; };
|
||||
248C9B4FF0D3F81A06280C402C567D88 /* ContextMenuPresenting.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ContextMenuPresenting.swift; path = ContextMenu/ContextMenuPresenting.swift; sourceTree = "<group>"; };
|
||||
1EC5896B29B2087FD130784F9CF89023 /* ContextMenu+Position.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "ContextMenu+Position.swift"; path = "ContextMenu/ContextMenu+Position.swift"; sourceTree = "<group>"; };
|
||||
2010C37F99B1D9F53B215618BF437365 /* ContextMenu+Animations.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "ContextMenu+Animations.swift"; path = "ContextMenu/ContextMenu+Animations.swift"; sourceTree = "<group>"; };
|
||||
25A37D4D536CC5988A439441117C41F4 /* Pods-Example.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-Example.modulemap"; sourceTree = "<group>"; };
|
||||
2E9625EE0940E5B6D28DE87B9A9AA394 /* ContextMenu+ContextMenuPresentationControllerDelegate.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "ContextMenu+ContextMenuPresentationControllerDelegate.swift"; path = "ContextMenu/ContextMenu+ContextMenuPresentationControllerDelegate.swift"; sourceTree = "<group>"; };
|
||||
333B6A8DDD5E59721593B55968D63FAB /* SourceViewCorner.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SourceViewCorner.swift; path = ContextMenu/SourceViewCorner.swift; sourceTree = "<group>"; };
|
||||
25B9D0212278FC8335064C39FBEF3405 /* ContextMenu+UIViewControllerTransitioningDelegate.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "ContextMenu+UIViewControllerTransitioningDelegate.swift"; path = "ContextMenu/ContextMenu+UIViewControllerTransitioningDelegate.swift"; sourceTree = "<group>"; };
|
||||
29C92A6F62E6FC58B8F2AD827907A9DD /* ContextMenu+Options.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "ContextMenu+Options.swift"; path = "ContextMenu/ContextMenu+Options.swift"; sourceTree = "<group>"; };
|
||||
38829E861C7A5A79D6B35B8C49650A3E /* ContextMenu-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "ContextMenu-dummy.m"; sourceTree = "<group>"; };
|
||||
3ADE9E5655579DB0F79DC9C80758673C /* Pods-Example-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-Example-acknowledgements.markdown"; sourceTree = "<group>"; };
|
||||
3B796449873E608A89AED61965C2BF69 /* LICENSE */ = {isa = PBXFileReference; includeInIndex = 1; path = LICENSE; sourceTree = "<group>"; };
|
||||
3F3EFEBDE6702DEFDFFF9D5C6DBC3773 /* Pods-Example-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-Example-frameworks.sh"; sourceTree = "<group>"; };
|
||||
4372D257F4D95B7947C8B75C44589837 /* ContextMenuPresentationController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ContextMenuPresentationController.swift; path = ContextMenu/ContextMenuPresentationController.swift; sourceTree = "<group>"; };
|
||||
4458DFE4EB0642A02F5AFCD928B409F7 /* ContextMenuDismissing.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ContextMenuDismissing.swift; path = ContextMenu/ContextMenuDismissing.swift; sourceTree = "<group>"; };
|
||||
474D16CA3C348A373EFF57AD26B722F2 /* ContextMenu+Options.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "ContextMenu+Options.swift"; path = "ContextMenu/ContextMenu+Options.swift"; sourceTree = "<group>"; };
|
||||
4AA4306EDD56FD63FFE70487653C25C7 /* ContextMenu.podspec */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; lastKnownFileType = text; path = ContextMenu.podspec; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.ruby; };
|
||||
5A5ED5343F3693436571E370FA1D9B25 /* ContextMenu.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = ContextMenu.xcconfig; sourceTree = "<group>"; };
|
||||
445E749697DB5AEE7FC3F4841F6DE0DA /* UIViewController+Extensions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "UIViewController+Extensions.swift"; path = "ContextMenu/UIViewController+Extensions.swift"; sourceTree = "<group>"; };
|
||||
4F71B2CDCED40401559F56B25D107BBF /* ContextMenu.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = ContextMenu.modulemap; sourceTree = "<group>"; };
|
||||
5B81C04F8E84EAE60AE15C8695031A5F /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
|
||||
62168363D7BF0CE18A35DC197FA28EE2 /* ContextMenu+MenuStyle.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "ContextMenu+MenuStyle.swift"; path = "ContextMenu/ContextMenu+MenuStyle.swift"; 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; };
|
||||
6F09346CD57031C9F4615B373489CCB0 /* ContextMenu+ContainerStyle.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "ContextMenu+ContainerStyle.swift"; path = "ContextMenu/ContextMenu+ContainerStyle.swift"; sourceTree = "<group>"; };
|
||||
71DDD555C4F32B86F69F2CCE692E87C1 /* ContextMenu+Item.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "ContextMenu+Item.swift"; path = "ContextMenu/ContextMenu+Item.swift"; sourceTree = "<group>"; };
|
||||
7F35176CEE9BAAD80281A0DF595B0D25 /* ContextMenu-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "ContextMenu-dummy.m"; sourceTree = "<group>"; };
|
||||
72B731B7406B5FB223B95C8D36309BBE /* ClippedContainerViewController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ClippedContainerViewController.swift; path = ContextMenu/ClippedContainerViewController.swift; sourceTree = "<group>"; };
|
||||
7499EE098FDBE5A28E76D0446AF58AC0 /* ContextMenu+ContainerStyle.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "ContextMenu+ContainerStyle.swift"; path = "ContextMenu/ContextMenu+ContainerStyle.swift"; sourceTree = "<group>"; };
|
||||
7A034387677531001A80E15E7E83393C /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
|
||||
82A337CF99D9E451A6EB70F694C748EF /* ContextMenu-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "ContextMenu-prefix.pch"; sourceTree = "<group>"; };
|
||||
876DCA2D18C8998768EC4272EF6B6CBF /* 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; };
|
||||
93A4A3777CF96A4AAC1D13BA6DCCEA73 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; lastKnownFileType = text; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; xcLanguageSpecificationIdentifier = xcode.lang.ruby; };
|
||||
9C3FF79DFFBBA1D6E050BA6DD95788A5 /* SourceViewCorner.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SourceViewCorner.swift; path = ContextMenu/SourceViewCorner.swift; sourceTree = "<group>"; };
|
||||
9E394A1C4433BACFDC1EFD53AE6AA1A1 /* ContextMenuDismissing.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ContextMenuDismissing.swift; path = ContextMenu/ContextMenuDismissing.swift; sourceTree = "<group>"; };
|
||||
A79AC23D5A157FED70D9C53D844B2319 /* Pods-Example.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Example.release.xcconfig"; sourceTree = "<group>"; };
|
||||
A99C513A5107C353567935F9D81AA652 /* ContextMenu+Animations.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "ContextMenu+Animations.swift"; path = "ContextMenu/ContextMenu+Animations.swift"; sourceTree = "<group>"; };
|
||||
BA36393F87FB036B5B9B0106BEC81095 /* ContextMenu-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "ContextMenu-prefix.pch"; sourceTree = "<group>"; };
|
||||
C3EAB79C04F9B0D923F8793CFDA2DD07 /* ContextMenu-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "ContextMenu-umbrella.h"; sourceTree = "<group>"; };
|
||||
A7B75D25C2F0D595ACD83E2E8B78A2A5 /* ContextMenu+Item.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "ContextMenu+Item.swift"; path = "ContextMenu/ContextMenu+Item.swift"; sourceTree = "<group>"; };
|
||||
A98CB7089CDA4C03885C7A7628170ECB /* CGRect+DominantCorner.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "CGRect+DominantCorner.swift"; path = "ContextMenu/CGRect+DominantCorner.swift"; sourceTree = "<group>"; };
|
||||
C349124E46646C82972F9FF68CDD12D4 /* ContextMenuPresentationController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ContextMenuPresentationController.swift; path = ContextMenu/ContextMenuPresentationController.swift; sourceTree = "<group>"; };
|
||||
C9792695121A60254E7D649C440E8697 /* ContextMenu.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = ContextMenu.framework; path = ContextMenu.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D177D476D63313B2ADC339EC0713F6D5 /* README.md */ = {isa = PBXFileReference; includeInIndex = 1; path = README.md; sourceTree = "<group>"; };
|
||||
D1B6FD6EAA05656387548B6C68F1CB27 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
|
||||
E7A3903BCCBC56DE7698C23F1B9D7025 /* ClippedContainerViewController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ClippedContainerViewController.swift; path = ContextMenu/ClippedContainerViewController.swift; sourceTree = "<group>"; };
|
||||
E9E5199A0158EA7B553B582999281E75 /* CGRect+Area.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "CGRect+Area.swift"; path = "ContextMenu/CGRect+Area.swift"; sourceTree = "<group>"; };
|
||||
EE1CBCB45C857CA71181AC45E10D9857 /* LICENSE */ = {isa = PBXFileReference; includeInIndex = 1; path = LICENSE; sourceTree = "<group>"; };
|
||||
D64353D07F67614B1E5B204C3E895A72 /* README.md */ = {isa = PBXFileReference; includeInIndex = 1; path = README.md; sourceTree = "<group>"; };
|
||||
D6DFF15000AFE2A371BF499E7AFDA808 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.0.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; };
|
||||
E5E5391D26CF925AED049BCEDAF816F9 /* ContextMenu.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = ContextMenu.xcconfig; sourceTree = "<group>"; };
|
||||
E822CED64132958D534ABC6094B80D7D /* ContextMenu-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "ContextMenu-umbrella.h"; sourceTree = "<group>"; };
|
||||
EBC710C61697A9A12EE4823B62569E48 /* ContextMenu+ContextMenuPresentationControllerDelegate.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "ContextMenu+ContextMenuPresentationControllerDelegate.swift"; path = "ContextMenu/ContextMenu+ContextMenuPresentationControllerDelegate.swift"; sourceTree = "<group>"; };
|
||||
EFC5B2E05B58CD826FD55659BF1D7E39 /* Pods-Example.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Example.debug.xcconfig"; sourceTree = "<group>"; };
|
||||
F3AC6FE060B4AE166C90F65E0E2BD194 /* ContextMenu.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = ContextMenu.modulemap; sourceTree = "<group>"; };
|
||||
F04F338A7AAB7F2AAD2563869060CFFF /* ContextMenu+HapticFeedbackStyle.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "ContextMenu+HapticFeedbackStyle.swift"; path = "ContextMenu/ContextMenu+HapticFeedbackStyle.swift"; sourceTree = "<group>"; };
|
||||
F43432A3BC4041C56C94F792DFC78ADB /* ContextMenu.podspec */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; lastKnownFileType = text; path = ContextMenu.podspec; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.ruby; };
|
||||
F606139C50020CE85C9D913244EEBAAC /* ContextMenuDelegate.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ContextMenuDelegate.swift; path = ContextMenu/ContextMenuDelegate.swift; sourceTree = "<group>"; };
|
||||
F980C8F605345A85D53A349D382A270E /* ContextMenuPresenting.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ContextMenuPresenting.swift; path = ContextMenu/ContextMenuPresenting.swift; sourceTree = "<group>"; };
|
||||
FB66205F175B125DD11F715D65363A57 /* ContextMenu.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ContextMenu.swift; path = ContextMenu/ContextMenu.swift; sourceTree = "<group>"; };
|
||||
FEE4BE52E19F9F634AA5736C2782A20A /* CGRect+Area.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "CGRect+Area.swift"; path = "ContextMenu/CGRect+Area.swift"; sourceTree = "<group>"; };
|
||||
/* End PBXFileReference section */
|
||||
|
||||
/* Begin PBXFrameworksBuildPhase section */
|
||||
11A115FAF4DA547D1E09F39B8EBE85F1 /* Frameworks */ = {
|
||||
3657522B0AE56B7CF50C3347BD6D967A /* Frameworks */ = {
|
||||
isa = PBXFrameworksBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
B249B66E738181ADC06D5F535E15ACB4 /* Foundation.framework in Frameworks */,
|
||||
7008E5A7B07EAB25B91A54BCC547B742 /* Foundation.framework in Frameworks */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
81D8A176D77C945E39050D896E977827 /* Frameworks */ = {
|
||||
A7D072FEA1F70E8CCE90DDA8A60C6D2D /* Frameworks */ = {
|
||||
isa = PBXFrameworksBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
32BD703743B0B8B75A5832596BBDD912 /* Foundation.framework in Frameworks */,
|
||||
6F7ED43213C40DC8E7B12B9AEDAC6CDB /* Foundation.framework in Frameworks */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
@@ -117,28 +127,32 @@
|
||||
path = "Target Support Files/Pods-Example";
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
20940AA8C4D3863E207848977EBEF11C /* Support Files */ = {
|
||||
2E5508160BFFC105DAEFAF2809A85771 /* Development Pods */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
F3AC6FE060B4AE166C90F65E0E2BD194 /* ContextMenu.modulemap */,
|
||||
5A5ED5343F3693436571E370FA1D9B25 /* ContextMenu.xcconfig */,
|
||||
7F35176CEE9BAAD80281A0DF595B0D25 /* ContextMenu-dummy.m */,
|
||||
BA36393F87FB036B5B9B0106BEC81095 /* ContextMenu-prefix.pch */,
|
||||
C3EAB79C04F9B0D923F8793CFDA2DD07 /* ContextMenu-umbrella.h */,
|
||||
D1B6FD6EAA05656387548B6C68F1CB27 /* Info.plist */,
|
||||
);
|
||||
name = "Support Files";
|
||||
path = "Example/Pods/Target Support Files/ContextMenu";
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
3F0A5F1EF3DA411863AE72B94A1D0EA6 /* Development Pods */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
B3C1B7C3B8F55E46C293A5ACA2938450 /* ContextMenu */,
|
||||
8183C3D78806A8B1719029B976CF4AD7 /* ContextMenu */,
|
||||
);
|
||||
name = "Development Pods";
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
44D5347904CF754D6785B84253F2574A /* iOS */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
D6DFF15000AFE2A371BF499E7AFDA808 /* Foundation.framework */,
|
||||
);
|
||||
name = iOS;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
6751DA30198A8300C4A07C7A20634E20 /* Pod */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
F43432A3BC4041C56C94F792DFC78ADB /* ContextMenu.podspec */,
|
||||
3B796449873E608A89AED61965C2BF69 /* LICENSE */,
|
||||
D64353D07F67614B1E5B204C3E895A72 /* README.md */,
|
||||
);
|
||||
name = Pod;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
6A4F6A14E3FB951290E4531728B7A461 /* Targets Support Files */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
@@ -151,32 +165,37 @@
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
93A4A3777CF96A4AAC1D13BA6DCCEA73 /* Podfile */,
|
||||
3F0A5F1EF3DA411863AE72B94A1D0EA6 /* Development Pods */,
|
||||
2E5508160BFFC105DAEFAF2809A85771 /* Development Pods */,
|
||||
BC3CA7F9E30CC8F7E2DD044DD34432FC /* Frameworks */,
|
||||
C65033CE272052BFBDCB15610D69AE2B /* Products */,
|
||||
6A4F6A14E3FB951290E4531728B7A461 /* Targets Support Files */,
|
||||
);
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
B3C1B7C3B8F55E46C293A5ACA2938450 /* ContextMenu */ = {
|
||||
8183C3D78806A8B1719029B976CF4AD7 /* ContextMenu */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
E9E5199A0158EA7B553B582999281E75 /* CGRect+Area.swift */,
|
||||
E7A3903BCCBC56DE7698C23F1B9D7025 /* ClippedContainerViewController.swift */,
|
||||
083F96FBD20FBEB55E326904926AB872 /* ContextMenu.swift */,
|
||||
A99C513A5107C353567935F9D81AA652 /* ContextMenu+Animations.swift */,
|
||||
6F09346CD57031C9F4615B373489CCB0 /* ContextMenu+ContainerStyle.swift */,
|
||||
2E9625EE0940E5B6D28DE87B9A9AA394 /* ContextMenu+ContextMenuPresentationControllerDelegate.swift */,
|
||||
71DDD555C4F32B86F69F2CCE692E87C1 /* ContextMenu+Item.swift */,
|
||||
62168363D7BF0CE18A35DC197FA28EE2 /* ContextMenu+MenuStyle.swift */,
|
||||
474D16CA3C348A373EFF57AD26B722F2 /* ContextMenu+Options.swift */,
|
||||
15DBAFC09AB1344CE2E45DEE323F5406 /* ContextMenu+UIViewControllerTransitioningDelegate.swift */,
|
||||
4458DFE4EB0642A02F5AFCD928B409F7 /* ContextMenuDismissing.swift */,
|
||||
4372D257F4D95B7947C8B75C44589837 /* ContextMenuPresentationController.swift */,
|
||||
248C9B4FF0D3F81A06280C402C567D88 /* ContextMenuPresenting.swift */,
|
||||
333B6A8DDD5E59721593B55968D63FAB /* SourceViewCorner.swift */,
|
||||
DE363DB3821939CF89BB2CC8B8B39B2B /* Pod */,
|
||||
20940AA8C4D3863E207848977EBEF11C /* Support Files */,
|
||||
FEE4BE52E19F9F634AA5736C2782A20A /* CGRect+Area.swift */,
|
||||
A98CB7089CDA4C03885C7A7628170ECB /* CGRect+DominantCorner.swift */,
|
||||
72B731B7406B5FB223B95C8D36309BBE /* ClippedContainerViewController.swift */,
|
||||
FB66205F175B125DD11F715D65363A57 /* ContextMenu.swift */,
|
||||
2010C37F99B1D9F53B215618BF437365 /* ContextMenu+Animations.swift */,
|
||||
7499EE098FDBE5A28E76D0446AF58AC0 /* ContextMenu+ContainerStyle.swift */,
|
||||
EBC710C61697A9A12EE4823B62569E48 /* ContextMenu+ContextMenuPresentationControllerDelegate.swift */,
|
||||
F04F338A7AAB7F2AAD2563869060CFFF /* ContextMenu+HapticFeedbackStyle.swift */,
|
||||
A7B75D25C2F0D595ACD83E2E8B78A2A5 /* ContextMenu+Item.swift */,
|
||||
876DCA2D18C8998768EC4272EF6B6CBF /* ContextMenu+MenuStyle.swift */,
|
||||
29C92A6F62E6FC58B8F2AD827907A9DD /* ContextMenu+Options.swift */,
|
||||
1EC5896B29B2087FD130784F9CF89023 /* ContextMenu+Position.swift */,
|
||||
25B9D0212278FC8335064C39FBEF3405 /* ContextMenu+UIViewControllerTransitioningDelegate.swift */,
|
||||
F606139C50020CE85C9D913244EEBAAC /* ContextMenuDelegate.swift */,
|
||||
9E394A1C4433BACFDC1EFD53AE6AA1A1 /* ContextMenuDismissing.swift */,
|
||||
C349124E46646C82972F9FF68CDD12D4 /* ContextMenuPresentationController.swift */,
|
||||
F980C8F605345A85D53A349D382A270E /* ContextMenuPresenting.swift */,
|
||||
9C3FF79DFFBBA1D6E050BA6DD95788A5 /* SourceViewCorner.swift */,
|
||||
445E749697DB5AEE7FC3F4841F6DE0DA /* UIViewController+Extensions.swift */,
|
||||
6751DA30198A8300C4A07C7A20634E20 /* Pod */,
|
||||
E6D896261D82145FDBC1F2E54FF0D96D /* Support Files */,
|
||||
);
|
||||
name = ContextMenu;
|
||||
path = ../..;
|
||||
@@ -185,7 +204,7 @@
|
||||
BC3CA7F9E30CC8F7E2DD044DD34432FC /* Frameworks */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
D35AF013A5F0BAD4F32504907A52519E /* iOS */,
|
||||
44D5347904CF754D6785B84253F2574A /* iOS */,
|
||||
);
|
||||
name = Frameworks;
|
||||
sourceTree = "<group>";
|
||||
@@ -199,71 +218,50 @@
|
||||
name = Products;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
D35AF013A5F0BAD4F32504907A52519E /* iOS */ = {
|
||||
E6D896261D82145FDBC1F2E54FF0D96D /* Support Files */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
6604A7D69453B4569E4E4827FB9155A9 /* Foundation.framework */,
|
||||
4F71B2CDCED40401559F56B25D107BBF /* ContextMenu.modulemap */,
|
||||
E5E5391D26CF925AED049BCEDAF816F9 /* ContextMenu.xcconfig */,
|
||||
38829E861C7A5A79D6B35B8C49650A3E /* ContextMenu-dummy.m */,
|
||||
82A337CF99D9E451A6EB70F694C748EF /* ContextMenu-prefix.pch */,
|
||||
E822CED64132958D534ABC6094B80D7D /* ContextMenu-umbrella.h */,
|
||||
7A034387677531001A80E15E7E83393C /* Info.plist */,
|
||||
);
|
||||
name = iOS;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
DE363DB3821939CF89BB2CC8B8B39B2B /* Pod */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
4AA4306EDD56FD63FFE70487653C25C7 /* ContextMenu.podspec */,
|
||||
EE1CBCB45C857CA71181AC45E10D9857 /* LICENSE */,
|
||||
D177D476D63313B2ADC339EC0713F6D5 /* README.md */,
|
||||
);
|
||||
name = Pod;
|
||||
name = "Support Files";
|
||||
path = "Example/Pods/Target Support Files/ContextMenu";
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
/* End PBXGroup section */
|
||||
|
||||
/* Begin PBXHeadersBuildPhase section */
|
||||
56AA5040B4EFC9CA80BD7B049F73739F /* Headers */ = {
|
||||
1D891632B70F657E9A4EFBB0BBAFDE8A /* Headers */ = {
|
||||
isa = PBXHeadersBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
71B3B8136D9A8DACBBD76C3B1272FE02 /* Pods-Example-umbrella.h in Headers */,
|
||||
C9A4035570C67B3137D516D7F6457804 /* ContextMenu-umbrella.h in Headers */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
AF762F200BA5827FC8DC4B06A78DC0F9 /* Headers */ = {
|
||||
BEF0062F5D23D905ADF8214D1B7E5FA3 /* Headers */ = {
|
||||
isa = PBXHeadersBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
C688343B3B6107C07545D1AB5A931DF3 /* ContextMenu-umbrella.h in Headers */,
|
||||
B5D9F07B4ABAD5CEF2D5040444E97EE4 /* Pods-Example-umbrella.h in Headers */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXHeadersBuildPhase section */
|
||||
|
||||
/* Begin PBXNativeTarget section */
|
||||
4FFAA6E4EBC948A31BAEED42653BB8D7 /* Pods-Example */ = {
|
||||
772CC5B8F6E9961EEBBB1A85F0F22555 /* ContextMenu */ = {
|
||||
isa = PBXNativeTarget;
|
||||
buildConfigurationList = D3CB2AA0C5C3FD87BE88AEE41588DA13 /* Build configuration list for PBXNativeTarget "Pods-Example" */;
|
||||
buildConfigurationList = 22C08FA39BADB0F2AF01EF2463427788 /* 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";
|
||||
};
|
||||
94E34967574FD8A9203CFB4086EA7849 /* ContextMenu */ = {
|
||||
isa = PBXNativeTarget;
|
||||
buildConfigurationList = 11FA8D253AF9022C08CF03380C0FABE1 /* Build configuration list for PBXNativeTarget "ContextMenu" */;
|
||||
buildPhases = (
|
||||
25FAA96C2EC5D6480E5D9FFD213E689E /* Sources */,
|
||||
11A115FAF4DA547D1E09F39B8EBE85F1 /* Frameworks */,
|
||||
AF762F200BA5827FC8DC4B06A78DC0F9 /* Headers */,
|
||||
1D891632B70F657E9A4EFBB0BBAFDE8A /* Headers */,
|
||||
AFC5657C5C44E07E8AAC8EB5AD6A57A8 /* Sources */,
|
||||
3657522B0AE56B7CF50C3347BD6D967A /* Frameworks */,
|
||||
D4889153D13DFA09CD4608567C75B07F /* Resources */,
|
||||
);
|
||||
buildRules = (
|
||||
);
|
||||
@@ -274,6 +272,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 */
|
||||
@@ -295,91 +312,78 @@
|
||||
projectDirPath = "";
|
||||
projectRoot = "";
|
||||
targets = (
|
||||
94E34967574FD8A9203CFB4086EA7849 /* ContextMenu */,
|
||||
4FFAA6E4EBC948A31BAEED42653BB8D7 /* Pods-Example */,
|
||||
772CC5B8F6E9961EEBBB1A85F0F22555 /* ContextMenu */,
|
||||
77F4FBBC79EAC11DCAB46A37845B6065 /* Pods-Example */,
|
||||
);
|
||||
};
|
||||
/* End PBXProject section */
|
||||
|
||||
/* Begin PBXSourcesBuildPhase section */
|
||||
25FAA96C2EC5D6480E5D9FFD213E689E /* Sources */ = {
|
||||
isa = PBXSourcesBuildPhase;
|
||||
/* Begin PBXResourcesBuildPhase section */
|
||||
7D7989C8E4124470A196135A5694C840 /* Resources */ = {
|
||||
isa = PBXResourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
EBC0F04EB8E02903FAF43834427C054B /* CGRect+Area.swift in Sources */,
|
||||
3363E5B3A2FD80DD2F523DEA110AD23D /* ClippedContainerViewController.swift in Sources */,
|
||||
A912935A70F53FE5706F816CA00A1B87 /* ContextMenu+Animations.swift in Sources */,
|
||||
53B0CE3D9CAB2490DB94E726AA469C4B /* ContextMenu+ContainerStyle.swift in Sources */,
|
||||
31B67E27C8932833B5F23A70D2A1A18F /* ContextMenu+ContextMenuPresentationControllerDelegate.swift in Sources */,
|
||||
6044456AABCB0211A94A96C4E7C41CF4 /* ContextMenu+Item.swift in Sources */,
|
||||
E119E1F08583FB65F0EEA26D35A963A2 /* ContextMenu+MenuStyle.swift in Sources */,
|
||||
75A781BF4CB0EDE380DD15E4D504B69D /* ContextMenu+Options.swift in Sources */,
|
||||
6B13209979CF19E1E726F7059AE91A89 /* ContextMenu+UIViewControllerTransitioningDelegate.swift in Sources */,
|
||||
8BA5F415846C5CDFB898F992F514425D /* ContextMenu-dummy.m in Sources */,
|
||||
EBDF697639505492990E5BBA82E23F14 /* ContextMenu.swift in Sources */,
|
||||
5789B58F3338651E84452B085E2CC7AA /* ContextMenuDismissing.swift in Sources */,
|
||||
511F9D7A1F1A172CA89DD401A12E442E /* ContextMenuPresentationController.swift in Sources */,
|
||||
29004463EA77E281BC76D155ADB9020F /* ContextMenuPresenting.swift in Sources */,
|
||||
B495981AA0156AED9F5AFF5427AC4B99 /* SourceViewCorner.swift in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
84E87A2BE9D1D93F66EBFD49006C04D4 /* Sources */ = {
|
||||
D4889153D13DFA09CD4608567C75B07F /* Resources */ = {
|
||||
isa = PBXResourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXResourcesBuildPhase section */
|
||||
|
||||
/* Begin PBXSourcesBuildPhase section */
|
||||
AFC5657C5C44E07E8AAC8EB5AD6A57A8 /* Sources */ = {
|
||||
isa = PBXSourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
40F454BB711499A3B137B3CD6180DCD4 /* Pods-Example-dummy.m in Sources */,
|
||||
D30D3F17F8913638A1EAED39373A58ED /* CGRect+Area.swift in Sources */,
|
||||
4E1281ED2D828ACB4807EE44A53F2189 /* CGRect+DominantCorner.swift in Sources */,
|
||||
CEED614FDA917A5778CE1678D45D0CB2 /* ClippedContainerViewController.swift in Sources */,
|
||||
69016883573481E5C0CF71F8B94E880B /* ContextMenu+Animations.swift in Sources */,
|
||||
FCE8B9C90749DB70C5E308FCCB79ED11 /* ContextMenu+ContainerStyle.swift in Sources */,
|
||||
AE6D51C2B4F01A4F077279406F6B7C5C /* ContextMenu+ContextMenuPresentationControllerDelegate.swift in Sources */,
|
||||
6A5684F938152D3506C3216F758B0C6E /* ContextMenu+HapticFeedbackStyle.swift in Sources */,
|
||||
85FFA9F18C6BF668306A7B4B400C0262 /* ContextMenu+Item.swift in Sources */,
|
||||
A7431A52901D9D1F55E591670E9335EA /* ContextMenu+MenuStyle.swift in Sources */,
|
||||
7CF47DAA64CE623A0E3CAA6AD53CA021 /* ContextMenu+Options.swift in Sources */,
|
||||
F55C7F10DB0820665BC117C4698A2523 /* ContextMenu+Position.swift in Sources */,
|
||||
6B82E6893AA2851DBC204FB59DC068F9 /* ContextMenu+UIViewControllerTransitioningDelegate.swift in Sources */,
|
||||
1762FA1D64C9EA83E43695B04046D72C /* ContextMenu-dummy.m in Sources */,
|
||||
A2FE3EF8AF416B75494BF9FF060E4EA5 /* ContextMenu.swift in Sources */,
|
||||
5CFDA4EAAE83A6232A8E22F03DBC40AF /* ContextMenuDelegate.swift in Sources */,
|
||||
881A1FCDB0A4F8C87F11F91BB80CC55F /* ContextMenuDismissing.swift in Sources */,
|
||||
33C17B57DD98CF3837D8C1FCD76767F4 /* ContextMenuPresentationController.swift in Sources */,
|
||||
5D9AFF3F736A1604CA52682110F71BDD /* ContextMenuPresenting.swift in Sources */,
|
||||
25FAD1B93EB6099D10589D5EFD1BB528 /* SourceViewCorner.swift in Sources */,
|
||||
2E261D8951F05E27C7945DBC4CE35B2D /* 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 = 94E34967574FD8A9203CFB4086EA7849 /* ContextMenu */;
|
||||
targetProxy = 1BF88884B950C5385334221468581CB7 /* PBXContainerItemProxy */;
|
||||
target = 772CC5B8F6E9961EEBBB1A85F0F22555 /* ContextMenu */;
|
||||
targetProxy = 1110B3E3EAF2C503F0C3DD7924A1B2FE /* PBXContainerItemProxy */;
|
||||
};
|
||||
/* End PBXTargetDependency section */
|
||||
|
||||
/* Begin XCBuildConfiguration section */
|
||||
306B871BA67093DD446E506D7EEE972C /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = EFC5B2E05B58CD826FD55659BF1D7E39 /* Pods-Example.debug.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_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
|
||||
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
|
||||
TARGETED_DEVICE_FAMILY = "1,2";
|
||||
VERSIONING_SYSTEM = "apple-generic";
|
||||
VERSION_INFO_PREFIX = "";
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
323A24856F1A4871A780301AF5C02A2A /* Debug */ = {
|
||||
5DE19CECB206ACCCACF04D62F93FFDA6 /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
@@ -411,6 +415,136 @@
|
||||
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 = 9.0;
|
||||
MTL_ENABLE_DEBUG_INFO = NO;
|
||||
MTL_FAST_MATH = YES;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
STRIP_INSTALLED_PRODUCT = NO;
|
||||
SWIFT_COMPILATION_MODE = wholemodule;
|
||||
SWIFT_OPTIMIZATION_LEVEL = "-O";
|
||||
SWIFT_VERSION = 4.2;
|
||||
SYMROOT = "${SRCROOT}/../build";
|
||||
};
|
||||
name = Release;
|
||||
};
|
||||
6669E35B09F30E91E04A041B06E9E17A /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = EFC5B2E05B58CD826FD55659BF1D7E39 /* Pods-Example.debug.xcconfig */;
|
||||
buildSettings = {
|
||||
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = 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 = 9.0;
|
||||
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;
|
||||
TARGETED_DEVICE_FAMILY = "1,2";
|
||||
VERSIONING_SYSTEM = "apple-generic";
|
||||
VERSION_INFO_PREFIX = "";
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
6CDF4B5DA10EF25E3419423A555F166A /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = A79AC23D5A157FED70D9C53D844B2319 /* Pods-Example.release.xcconfig */;
|
||||
buildSettings = {
|
||||
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = 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 = 9.0;
|
||||
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;
|
||||
TARGETED_DEVICE_FAMILY = "1,2";
|
||||
VALIDATE_PRODUCT = YES;
|
||||
VERSIONING_SYSTEM = "apple-generic";
|
||||
VERSION_INFO_PREFIX = "";
|
||||
};
|
||||
name = Release;
|
||||
};
|
||||
858D01EEFE984249A9581D18DBEA53F1 /* 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;
|
||||
@@ -431,183 +565,90 @@
|
||||
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 = YES;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
|
||||
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;
|
||||
};
|
||||
8042280493369F6D934721FDD6DBF7D4 /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = 5A5ED5343F3693436571E370FA1D9B25 /* 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;
|
||||
};
|
||||
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;
|
||||
};
|
||||
D70C72D4BCD06ED83B9D9D35B9EC3B52 /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = 5A5ED5343F3693436571E370FA1D9B25 /* 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;
|
||||
SWIFT_VERSION = 4.2;
|
||||
SYMROOT = "${SRCROOT}/../build";
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
BAE39E3358D1EB0F0FD962F01915FCB5 /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = E5E5391D26CF925AED049BCEDAF816F9 /* ContextMenu.xcconfig */;
|
||||
buildSettings = {
|
||||
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 = 9.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_VERSION = 4.2;
|
||||
TARGETED_DEVICE_FAMILY = "1,2";
|
||||
VERSIONING_SYSTEM = "apple-generic";
|
||||
VERSION_INFO_PREFIX = "";
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
CDD50E6C966182E1EE74BEBAB0B616DF /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = E5E5391D26CF925AED049BCEDAF816F9 /* ContextMenu.xcconfig */;
|
||||
buildSettings = {
|
||||
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 = 9.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_VERSION = 4.2;
|
||||
TARGETED_DEVICE_FAMILY = "1,2";
|
||||
VALIDATE_PRODUCT = YES;
|
||||
VERSIONING_SYSTEM = "apple-generic";
|
||||
VERSION_INFO_PREFIX = "";
|
||||
};
|
||||
name = Release;
|
||||
};
|
||||
/* End XCBuildConfiguration section */
|
||||
|
||||
/* Begin XCConfigurationList section */
|
||||
11FA8D253AF9022C08CF03380C0FABE1 /* Build configuration list for PBXNativeTarget "ContextMenu" */ = {
|
||||
22C08FA39BADB0F2AF01EF2463427788 /* Build configuration list for PBXNativeTarget "ContextMenu" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
D70C72D4BCD06ED83B9D9D35B9EC3B52 /* Debug */,
|
||||
8042280493369F6D934721FDD6DBF7D4 /* Release */,
|
||||
BAE39E3358D1EB0F0FD962F01915FCB5 /* Debug */,
|
||||
CDD50E6C966182E1EE74BEBAB0B616DF /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Release;
|
||||
@@ -615,17 +656,17 @@
|
||||
2D8E8EC45A3A1A1D94AE762CB5028504 /* Build configuration list for PBXProject "Pods" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
323A24856F1A4871A780301AF5C02A2A /* Debug */,
|
||||
CA33F186435244FD0FD5B7325332656C /* Release */,
|
||||
858D01EEFE984249A9581D18DBEA53F1 /* Debug */,
|
||||
5DE19CECB206ACCCACF04D62F93FFDA6 /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Release;
|
||||
};
|
||||
D3CB2AA0C5C3FD87BE88AEE41588DA13 /* Build configuration list for PBXNativeTarget "Pods-Example" */ = {
|
||||
33B191BE7DAF68A5C86E7070C6FA0563 /* Build configuration list for PBXNativeTarget "Pods-Example" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
306B871BA67093DD446E506D7EEE972C /* Debug */,
|
||||
C72736E31C25E34B154DFAA69EFB6E7F /* Release */,
|
||||
6669E35B09F30E91E04A041B06E9E17A /* Debug */,
|
||||
6CDF4B5DA10EF25E3419423A555F166A /* 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
@@ -15,7 +15,7 @@
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>FMWK</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>0.1.0</string>
|
||||
<string>0.5.1</string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>????</string>
|
||||
<key>CFBundleVersion</key>
|
||||
|
||||
+11
-2
@@ -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
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
//
|
||||
// ModalNavigationViewController.swift
|
||||
// ContextMenu
|
||||
//
|
||||
// Created by Bas Broek on 01/04/2019.
|
||||
//
|
||||
|
||||
import UIKit
|
||||
|
||||
class ModalNavigationViewController: UINavigationController {
|
||||
override var accessibilityViewIsModal: Bool {
|
||||
get { return true }
|
||||
set {}
|
||||
}
|
||||
|
||||
override func accessibilityPerformEscape() -> Bool {
|
||||
dismiss(animated: UIAccessibility.isReduceMotionEnabled == false)
|
||||
return true
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user