From 278886e1f9521e4823c936d43892979ecd797b54 Mon Sep 17 00:00:00 2001 From: Caesar Wirth Date: Fri, 5 Jun 2015 16:57:28 +0900 Subject: [PATCH 01/15] Add support for custom JS actions --- RichEditorView/Assets/editor/rich_editor.js | 4 ++++ RichEditorView/Classes/RichEditorView.swift | 14 ++++++++++++++ 2 files changed, 18 insertions(+) diff --git a/RichEditorView/Assets/editor/rich_editor.js b/RichEditorView/Assets/editor/rich_editor.js index 95339171..f2b1b612 100644 --- a/RichEditorView/Assets/editor/rich_editor.js +++ b/RichEditorView/Assets/editor/rich_editor.js @@ -42,6 +42,10 @@ RE.editor.addEventListener("blur", function() { RE.callback("blur"); }); +RE.customAction = function(action) { + RE.callback("action/" + action); +} + RE.callback = function(method) { window.location.href = "re-callback://" + method; } diff --git a/RichEditorView/Classes/RichEditorView.swift b/RichEditorView/Classes/RichEditorView.swift index 96113e20..73037329 100644 --- a/RichEditorView/Classes/RichEditorView.swift +++ b/RichEditorView/Classes/RichEditorView.swift @@ -44,6 +44,12 @@ public protocol RichEditorDelegate: class { For example, if there is an external link, and then the user taps it */ func richEditorShouldInteractWithURL(url: NSURL) -> Bool + + /** + Called when custom actions are called by callbacks in the JS + By default, this method is not used unless called by some custom JS that you add + */ + func richEditor(editor: RichEditorView, handleCustomAction action: String) } /** @@ -357,6 +363,14 @@ extension RichEditorView: UIWebViewDelegate { else if method.hasPrefix("blur") { delegate?.richEditorLostFocus(self) } + else if method.hasPrefix("action/") { + // If there are any custom actions being called + // We need to tell the delegate about it + let actionPrefix = "action/" + let range = Range(start: actionPrefix.startIndex, end: actionPrefix.endIndex) + let action = method.stringByReplacingCharactersInRange(range, withString: "") + delegate?.richEditor(self, handleCustomAction: action) + } } return false From 960d68236d5037bd4b74efa0e7c43dd5039c6baa Mon Sep 17 00:00:00 2001 From: Caesar Wirth Date: Tue, 9 Jun 2015 11:44:25 +0900 Subject: [PATCH 02/15] Update to Swift 2.0 with Xcode 7 beta Xcode Version 7.0 beta (7A120f) --- .../Classes/RichEditorOptionItem.swift | 2 +- .../Classes/RichEditorToolbar.swift | 6 ++-- RichEditorView/Classes/RichEditorView.swift | 29 +++++++++---------- .../Pods/Pods.xcodeproj/project.pbxproj | 1 + .../project.pbxproj | 8 ++++- .../RichEditorViewSample/Info.plist | 2 +- .../KeyboardManager.swift | 2 +- .../RichEditorViewSample/ViewController.swift | 5 +++- .../RichEditorViewSampleTests/Info.plist | 2 +- 9 files changed, 33 insertions(+), 24 deletions(-) diff --git a/RichEditorView/Classes/RichEditorOptionItem.swift b/RichEditorView/Classes/RichEditorOptionItem.swift index 59be3196..0dc131b5 100644 --- a/RichEditorView/Classes/RichEditorOptionItem.swift +++ b/RichEditorView/Classes/RichEditorOptionItem.swift @@ -27,7 +27,7 @@ public protocol RichEditorOption { /** The action to be evoked when the action is tapped - :param: editor The RichEditorToolbar that the RichEditorOption was being displayed in when tapped. + - parameter editor: The RichEditorToolbar that the RichEditorOption was being displayed in when tapped. Contains a reference to the `editor` RichEditorView to perform actions on */ func action(editor: RichEditorToolbar?) diff --git a/RichEditorView/Classes/RichEditorToolbar.swift b/RichEditorView/Classes/RichEditorToolbar.swift index 90d94eb7..1f854b84 100644 --- a/RichEditorView/Classes/RichEditorToolbar.swift +++ b/RichEditorView/Classes/RichEditorToolbar.swift @@ -108,14 +108,14 @@ public class RichEditorToolbar: UIView { self.autoresizingMask = .FlexibleWidth backgroundToolbar.frame = self.bounds - backgroundToolbar.autoresizingMask = .FlexibleHeight | .FlexibleWidth + backgroundToolbar.autoresizingMask = [.FlexibleHeight, .FlexibleWidth] toolbar.autoresizingMask = .FlexibleWidth toolbar.setBackgroundImage(UIImage(), forToolbarPosition: .Any, barMetrics: .Default) toolbar.setShadowImage(UIImage(), forToolbarPosition: .Any) toolbarScroll.frame = self.bounds - toolbarScroll.autoresizingMask = .FlexibleHeight | .FlexibleWidth + toolbarScroll.autoresizingMask = [.FlexibleHeight, .FlexibleWidth] toolbarScroll.showsHorizontalScrollIndicator = false toolbarScroll.showsVerticalScrollIndicator = false toolbarScroll.backgroundColor = UIColor.clearColor() @@ -143,7 +143,7 @@ public class RichEditorToolbar: UIView { let defaultIconWidth: CGFloat = 22 let barButtonItemMargin: CGFloat = 11 - var width: CGFloat = buttons.reduce(0) {sofar, new in + let width: CGFloat = buttons.reduce(0) {sofar, new in if let view = new.valueForKey("view") as? UIView { return sofar + view.frame.size.width + barButtonItemMargin } else { diff --git a/RichEditorView/Classes/RichEditorView.swift b/RichEditorView/Classes/RichEditorView.swift index 73037329..aedd81ad 100644 --- a/RichEditorView/Classes/RichEditorView.swift +++ b/RichEditorView/Classes/RichEditorView.swift @@ -43,7 +43,7 @@ public protocol RichEditorDelegate: class { Called when the internal UIWebView begins loading a URL that it does not know how to respond to For example, if there is an external link, and then the user taps it */ - func richEditorShouldInteractWithURL(url: NSURL) -> Bool + func richEditor(editor: RichEditorView, shouldInteractWithURL url: NSURL) -> Bool /** Called when custom actions are called by callbacks in the JS @@ -134,7 +134,7 @@ public class RichEditorView: UIView { webView.delegate = self webView.keyboardDisplayRequiresUserAction = false webView.scalesPageToFit = false - webView.autoresizingMask = .FlexibleWidth | .FlexibleHeight + webView.autoresizingMask = [.FlexibleWidth, .FlexibleHeight] webView.dataDetectorTypes = .None webView.backgroundColor = UIColor.whiteColor() @@ -147,10 +147,9 @@ public class RichEditorView: UIView { self.addSubview(webView) if let filePath = NSBundle(forClass: RichEditorView.self).pathForResource("rich_editor", ofType: "html") { - if let url = NSURL(fileURLWithPath: filePath) { - let request = NSURLRequest(URL: url) - webView.loadRequest(request) - } + let url = NSURL(fileURLWithPath: filePath, isDirectory: false) + let request = NSURLRequest(URL: url) + webView.loadRequest(request) } } } @@ -338,8 +337,8 @@ extension RichEditorView: UIWebViewDelegate { // Handle pre-defined editor actions let callbackPrefix = "re-callback://" let prefixRange = callbackPrefix.startIndex.. String { var red: CGFloat = 0 @@ -420,8 +419,8 @@ extension RichEditorView { Escapes the ' character in a String Used when passing a string into JavaScript, so the string is not completed too soon - :param: string The string to be escaped - :returns: The string with all ' characters escaped + - parameter string: The string to be escaped + - returns: The string with all ' characters escaped */ private func escape(string: String) -> String { let unicode = string.unicodeScalars @@ -442,8 +441,8 @@ extension RichEditorView { Runs some JavaScript on the UIWebView and returns the result If there is no result, returns an empty string - :param: js The JavaScript string to be run - :returns: The result of the JavaScript that was run + - parameter js: The JavaScript string to be run + - returns: The result of the JavaScript that was run */ private func runJS(js: String) -> String { let string = webView.stringByEvaluatingJavaScriptFromString(js) ?? "" diff --git a/RichEditorViewSample/Pods/Pods.xcodeproj/project.pbxproj b/RichEditorViewSample/Pods/Pods.xcodeproj/project.pbxproj index 250b5a92..ac3c95db 100644 --- a/RichEditorViewSample/Pods/Pods.xcodeproj/project.pbxproj +++ b/RichEditorViewSample/Pods/Pods.xcodeproj/project.pbxproj @@ -469,6 +469,7 @@ FEAD181C8CA074C15B0CBCB6 /* Project object */ = { isa = PBXProject; attributes = { + LastSwiftUpdateCheck = 0700; LastUpgradeCheck = 0510; }; buildConfigurationList = 9A776911EDB4F4FCF1DB3EB0 /* Build configuration list for PBXProject "Pods" */; diff --git a/RichEditorViewSample/RichEditorViewSample.xcodeproj/project.pbxproj b/RichEditorViewSample/RichEditorViewSample.xcodeproj/project.pbxproj index a0e6dac3..0bfabca7 100644 --- a/RichEditorViewSample/RichEditorViewSample.xcodeproj/project.pbxproj +++ b/RichEditorViewSample/RichEditorViewSample.xcodeproj/project.pbxproj @@ -198,7 +198,8 @@ 39BBCFA21AD0CC7A00A450D2 /* Project object */ = { isa = PBXProject; attributes = { - LastUpgradeCheck = 0620; + LastSwiftUpdateCheck = 0700; + LastUpgradeCheck = 0700; ORGANIZATIONNAME = "Caesar Wirth"; TargetAttributes = { 39BBCFA91AD0CC7A00A450D2 = { @@ -366,6 +367,7 @@ "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; COPY_PHASE_STRIP = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_DYNAMIC_NO_PIC = NO; GCC_OPTIMIZATION_LEVEL = 0; @@ -433,6 +435,7 @@ INFOPLIST_FILE = RichEditorViewSample/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 8.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.cjwirth.$(PRODUCT_NAME:rfc1034identifier)"; PRODUCT_NAME = "$(TARGET_NAME)"; }; name = Debug; @@ -445,6 +448,7 @@ INFOPLIST_FILE = RichEditorViewSample/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 8.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.cjwirth.$(PRODUCT_NAME:rfc1034identifier)"; PRODUCT_NAME = "$(TARGET_NAME)"; }; name = Release; @@ -463,6 +467,7 @@ ); INFOPLIST_FILE = RichEditorViewSampleTests/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.cjwirth.$(PRODUCT_NAME:rfc1034identifier)"; PRODUCT_NAME = "$(TARGET_NAME)"; TEST_HOST = "$(BUILT_PRODUCTS_DIR)/RichEditorViewSample.app/RichEditorViewSample"; }; @@ -478,6 +483,7 @@ ); INFOPLIST_FILE = RichEditorViewSampleTests/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.cjwirth.$(PRODUCT_NAME:rfc1034identifier)"; PRODUCT_NAME = "$(TARGET_NAME)"; TEST_HOST = "$(BUILT_PRODUCTS_DIR)/RichEditorViewSample.app/RichEditorViewSample"; }; diff --git a/RichEditorViewSample/RichEditorViewSample/Info.plist b/RichEditorViewSample/RichEditorViewSample/Info.plist index 0a61d859..40c6215d 100644 --- a/RichEditorViewSample/RichEditorViewSample/Info.plist +++ b/RichEditorViewSample/RichEditorViewSample/Info.plist @@ -7,7 +7,7 @@ CFBundleExecutable $(EXECUTABLE_NAME) CFBundleIdentifier - com.cjwirth.$(PRODUCT_NAME:rfc1034identifier) + $(PRODUCT_BUNDLE_IDENTIFIER) CFBundleInfoDictionaryVersion 6.0 CFBundleName diff --git a/RichEditorViewSample/RichEditorViewSample/KeyboardManager.swift b/RichEditorViewSample/RichEditorViewSample/KeyboardManager.swift index d78666c0..6da1f805 100644 --- a/RichEditorViewSample/RichEditorViewSample/KeyboardManager.swift +++ b/RichEditorViewSample/RichEditorViewSample/KeyboardManager.swift @@ -56,7 +56,7 @@ class KeyboardManager: NSObject { let info = notification.userInfo ?? [:] let duration = NSTimeInterval((info[UIKeyboardAnimationDurationUserInfoKey] as? NSNumber)?.floatValue ?? 0.25) let curve = UInt((info[UIKeyboardAnimationCurveUserInfoKey] as? NSNumber)?.unsignedLongValue ?? 0) - let options = UIViewAnimationOptions(curve) + let options = UIViewAnimationOptions(rawValue: curve) let keyboardRect = (info[UIKeyboardFrameEndUserInfoKey] as? NSValue)?.CGRectValue() ?? CGRectZero diff --git a/RichEditorViewSample/RichEditorViewSample/ViewController.swift b/RichEditorViewSample/RichEditorViewSample/ViewController.swift index d89f7d95..acf5326a 100644 --- a/RichEditorViewSample/RichEditorViewSample/ViewController.swift +++ b/RichEditorViewSample/RichEditorViewSample/ViewController.swift @@ -64,7 +64,10 @@ extension ViewController: RichEditorDelegate { func richEditorDidLoad(editor: RichEditorView) { } - func richEditorShouldInteractWithURL(url: NSURL) -> Bool { return true } + func richEditor(editor: RichEditorView, shouldInteractWithURL url: NSURL) -> Bool { return true } + + func richEditor(editor: RichEditorView, handleCustomAction action: String) { } + } extension ViewController: RichEditorToolbarDelegate { diff --git a/RichEditorViewSample/RichEditorViewSampleTests/Info.plist b/RichEditorViewSample/RichEditorViewSampleTests/Info.plist index 9232e53d..ba72822e 100644 --- a/RichEditorViewSample/RichEditorViewSampleTests/Info.plist +++ b/RichEditorViewSample/RichEditorViewSampleTests/Info.plist @@ -7,7 +7,7 @@ CFBundleExecutable $(EXECUTABLE_NAME) CFBundleIdentifier - com.cjwirth.$(PRODUCT_NAME:rfc1034identifier) + $(PRODUCT_BUNDLE_IDENTIFIER) CFBundleInfoDictionaryVersion 6.0 CFBundleName From 17121139f10ecf8ac130d9d81db55a2c00b06f25 Mon Sep 17 00:00:00 2001 From: Caesar Wirth Date: Tue, 9 Jun 2015 11:58:53 +0900 Subject: [PATCH 03/15] Update README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index dcd6381f..ff2e1f73 100644 --- a/README.md +++ b/README.md @@ -6,9 +6,9 @@ RichEditorView RichEditorView is a simple, modular, drop-in UIView subclass for Rich Text Editing. -Written in Swift 1.2 (Xcode 6.3) +Written in **Swift 2.0** (Xcode 7.0 beta 7A120f) -Supports iOS 8 through Cocoapods, or iOS 7 by including the source in your project. +Supports iOS 8 and 9 through Cocoapods, or iOS 7 by including the source in your project. - _Looking for Android? Check out_ [wasabeef/richeditor-android](https://github.com/wasabeef/richeditor-android) From 737d8000c8b5558bab7eed5a7fb11c633d1b3a4c Mon Sep 17 00:00:00 2001 From: Caesar Wirth Date: Tue, 9 Jun 2015 19:17:38 +0900 Subject: [PATCH 04/15] Autocorrect popup gets cut off, so don't clip on the scroll view --- RichEditorView/Classes/RichEditorView.swift | 1 + 1 file changed, 1 insertion(+) diff --git a/RichEditorView/Classes/RichEditorView.swift b/RichEditorView/Classes/RichEditorView.swift index 73037329..d3f7ca36 100644 --- a/RichEditorView/Classes/RichEditorView.swift +++ b/RichEditorView/Classes/RichEditorView.swift @@ -141,6 +141,7 @@ public class RichEditorView: UIView { webView.scrollView.scrollEnabled = scrollEnabled webView.scrollView.bounces = false webView.scrollView.delegate = self + webView.scrollView.clipsToBounds = false webView.cjw_hidesInputAccessoryView = true From 3a61b30b0bc9408bc03dd070223ccb87dc715d60 Mon Sep 17 00:00:00 2001 From: Caesar Wirth Date: Tue, 9 Jun 2015 19:20:00 +0900 Subject: [PATCH 05/15] Make the internal UIWebView private, and runJS public Because the implementation might change --- RichEditorView/Classes/RichEditorView.swift | 34 ++++++++++----------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/RichEditorView/Classes/RichEditorView.swift b/RichEditorView/Classes/RichEditorView.swift index d3f7ca36..74ff574b 100644 --- a/RichEditorView/Classes/RichEditorView.swift +++ b/RichEditorView/Classes/RichEditorView.swift @@ -62,11 +62,6 @@ public class RichEditorView: UIView { */ public weak var delegate: RichEditorDelegate? - /** - The internal UIWebView that is used to display the text. - */ - public var webView: UIWebView - /** Whether or not scroll is enabled on the view. */ @@ -76,6 +71,11 @@ public class RichEditorView: UIView { } } + /** + The internal UIWebView that is used to display the text. + */ + private var webView: UIWebView + /** Whether or not to allow user input in the view. */ @@ -395,6 +395,18 @@ extension RichEditorView: UIWebViewDelegate { // MARK: - Utilities extension RichEditorView { + + /** + Runs some JavaScript on the UIWebView and returns the result + If there is no result, returns an empty string + + :param: js The JavaScript string to be run + :returns: The result of the JavaScript that was run + */ + public func runJS(js: String) -> String { + let string = webView.stringByEvaluatingJavaScriptFromString(js) ?? "" + return string + } /** Converts a UIColor to its representation in hexadecimal @@ -438,16 +450,4 @@ extension RichEditorView { } return newString } - - /** - Runs some JavaScript on the UIWebView and returns the result - If there is no result, returns an empty string - - :param: js The JavaScript string to be run - :returns: The result of the JavaScript that was run - */ - private func runJS(js: String) -> String { - let string = webView.stringByEvaluatingJavaScriptFromString(js) ?? "" - return string - } } From 4c2c5ef2e451a899aeb9536686edace28e11f633 Mon Sep 17 00:00:00 2001 From: Caesar Wirth Date: Tue, 7 Jul 2015 18:34:19 +0900 Subject: [PATCH 06/15] Call JS callbacks in a queue, so multiple simultaneous callbacks don't conflict with each other --- RichEditorView/Assets/editor/rich_editor.js | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/RichEditorView/Assets/editor/rich_editor.js b/RichEditorView/Assets/editor/rich_editor.js index f2b1b612..24540595 100644 --- a/RichEditorView/Assets/editor/rich_editor.js +++ b/RichEditorView/Assets/editor/rich_editor.js @@ -46,8 +46,22 @@ RE.customAction = function(action) { RE.callback("action/" + action); } +RE.callbackQueue = []; +RE.runCallbackQueue = function() { + if (RE.callbackQueue.length == 0) { + return; + } + + setTimeout(function() { + var method = RE.callbackQueue.shift(); + window.location.href = "re-callback://" + method; + RE.runQueue(); + }, 0); +} + RE.callback = function(method) { - window.location.href = "re-callback://" + method; + RE.callbackQueue.push(method); + RE.runCallbackQueue(); } RE.setHtml = function(contents) { From 741c5c0a592527ed6f7fe6dfcbf79fc8626f572e Mon Sep 17 00:00:00 2001 From: Caesar Wirth Date: Tue, 7 Jul 2015 18:34:44 +0900 Subject: [PATCH 07/15] Update the contentHTML on action callbacks, so the HTML is up to date for the action --- RichEditorView/Classes/RichEditorView.swift | 3 +++ 1 file changed, 3 insertions(+) diff --git a/RichEditorView/Classes/RichEditorView.swift b/RichEditorView/Classes/RichEditorView.swift index 74ff574b..ae3ea375 100644 --- a/RichEditorView/Classes/RichEditorView.swift +++ b/RichEditorView/Classes/RichEditorView.swift @@ -365,6 +365,9 @@ extension RichEditorView: UIWebViewDelegate { delegate?.richEditorLostFocus(self) } else if method.hasPrefix("action/") { + let content = runJS("RE.getHtml()") + contentHTML = content + // If there are any custom actions being called // We need to tell the delegate about it let actionPrefix = "action/" From 32aae190edfa787fb83db2477161a3a4b1f52da1 Mon Sep 17 00:00:00 2001 From: Caesar Wirth Date: Wed, 15 Jul 2015 15:43:41 +0900 Subject: [PATCH 08/15] Refactor command queue to work by getting the commands from the native side --- RichEditorView/Assets/editor/rich_editor.js | 10 ++- RichEditorView/Classes/RichEditorView.swift | 84 +++++++++++++-------- 2 files changed, 58 insertions(+), 36 deletions(-) diff --git a/RichEditorView/Assets/editor/rich_editor.js b/RichEditorView/Assets/editor/rich_editor.js index 24540595..df5d334a 100644 --- a/RichEditorView/Assets/editor/rich_editor.js +++ b/RichEditorView/Assets/editor/rich_editor.js @@ -53,12 +53,16 @@ RE.runCallbackQueue = function() { } setTimeout(function() { - var method = RE.callbackQueue.shift(); - window.location.href = "re-callback://" + method; - RE.runQueue(); + window.location.href = "re-callback://"; }, 0); } +RE.getCommandQueue = function() { + var commands = JSON.stringify(RE.callbackQueue); + RE.callbackQueue = []; + return commands; +} + RE.callback = function(method) { RE.callbackQueue.push(method); RE.runCallbackQueue(); diff --git a/RichEditorView/Classes/RichEditorView.swift b/RichEditorView/Classes/RichEditorView.swift index ae3ea375..eec1b359 100644 --- a/RichEditorView/Classes/RichEditorView.swift +++ b/RichEditorView/Classes/RichEditorView.swift @@ -340,40 +340,16 @@ extension RichEditorView: UIWebViewDelegate { let callbackPrefix = "re-callback://" let prefixRange = callbackPrefix.startIndex.. Date: Mon, 27 Jul 2015 12:53:58 +0900 Subject: [PATCH 09/15] Fixed toolbar compilation error for Swift 2.0 --- RichEditorView/Classes/RichEditorToolbar.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/RichEditorView/Classes/RichEditorToolbar.swift b/RichEditorView/Classes/RichEditorToolbar.swift index 1f854b84..9246882c 100644 --- a/RichEditorView/Classes/RichEditorToolbar.swift +++ b/RichEditorView/Classes/RichEditorToolbar.swift @@ -96,7 +96,7 @@ public class RichEditorToolbar: UIView { setup() } - public required init(coder aDecoder: NSCoder) { + public required init?(coder aDecoder: NSCoder) { toolbarScroll = UIScrollView() toolbar = UIToolbar() backgroundToolbar = UIToolbar() From 3cd2f4f353862258ffdc1bfdf85d86439862f89a Mon Sep 17 00:00:00 2001 From: Caesar Wirth Date: Tue, 4 Aug 2015 23:26:06 +0900 Subject: [PATCH 10/15] Fix sample project --- RichEditorViewSample/RichEditorViewSample/ViewController.swift | 2 ++ 1 file changed, 2 insertions(+) diff --git a/RichEditorViewSample/RichEditorViewSample/ViewController.swift b/RichEditorViewSample/RichEditorViewSample/ViewController.swift index d89f7d95..2a5756ef 100644 --- a/RichEditorViewSample/RichEditorViewSample/ViewController.swift +++ b/RichEditorViewSample/RichEditorViewSample/ViewController.swift @@ -65,6 +65,8 @@ extension ViewController: RichEditorDelegate { func richEditorDidLoad(editor: RichEditorView) { } func richEditorShouldInteractWithURL(url: NSURL) -> Bool { return true } + + func richEditor(editor: RichEditorView, handleCustomAction content: String) { } } extension ViewController: RichEditorToolbarDelegate { From 642458a4e693e4748583cbf878b2016f4b1b956f Mon Sep 17 00:00:00 2001 From: Caesar Wirth Date: Sun, 9 Aug 2015 13:48:58 +0900 Subject: [PATCH 11/15] Added support for custom input accessory view --- .../CJWWebView+HackishAccessoryHiding.h | 11 ++-- .../CJWWebView+HackishAccessoryHiding.m | 62 +++++++++++-------- RichEditorView/Classes/RichEditorView.swift | 13 +++- .../RichEditorViewSample/ViewController.swift | 23 +++---- 4 files changed, 64 insertions(+), 45 deletions(-) diff --git a/RichEditorView/Classes/CJWWebView+HackishAccessoryHiding.h b/RichEditorView/Classes/CJWWebView+HackishAccessoryHiding.h index 07f48a01..227c705c 100644 --- a/RichEditorView/Classes/CJWWebView+HackishAccessoryHiding.h +++ b/RichEditorView/Classes/CJWWebView+HackishAccessoryHiding.h @@ -7,11 +7,14 @@ #import -// Credit to this extension goes to bjhomes -// https://gist.github.com/bjhomer/2048571 +// Inspiration for this extension comes from: +// - bjhomes: https://gist.github.com/bjhomer/2048571 +// - diegoreymendez: http://stackoverflow.com/a/25415378/1403046 // Bundled inside to add a vendored prefix so as to hopefully not cause naming conflicts @interface UIWebView (CJWHackishAccessoryHiding) -// When set to YES, the UIWebView will no longer show an inputAccessoryView when they keyboard is shown. -@property (nonatomic, assign) BOOL cjw_hidesInputAccessoryView; +// Overrides the standard inputAccessoryView +// Set to a custom view to override. Setting to nil will remove it. +@property (nonatomic, strong, nullable) UIView *cjw_inputAccessoryView; + @end \ No newline at end of file diff --git a/RichEditorView/Classes/CJWWebView+HackishAccessoryHiding.m b/RichEditorView/Classes/CJWWebView+HackishAccessoryHiding.m index d1fa1120..c41b2531 100644 --- a/RichEditorView/Classes/CJWWebView+HackishAccessoryHiding.m +++ b/RichEditorView/Classes/CJWWebView+HackishAccessoryHiding.m @@ -13,6 +13,28 @@ @implementation UIWebView (HackishAccessoryHiding) static const char * const hackishFixClassName = "UIWebBrowserViewMinusAccessoryView"; static Class hackishFixClass = Nil; +- (UIView *)cjw_inputAccessoryView { + return objc_getAssociatedObject(self, @selector(cjw_inputAccessoryView)); +} + +- (void)setCjw_inputAccessoryView:(UIView *)view { + objc_setAssociatedObject(self, @selector(cjw_inputAccessoryView), view, OBJC_ASSOCIATION_RETAIN); + + UIView *browserView = [self hackishlyFoundBrowserView]; + if (browserView == nil) { + return; + } + [self ensureHackishSubclassExistsOfBrowserViewClass:[browserView class]]; + + object_setClass(browserView, hackishFixClass); + + // This is how we will return the accessory view if we want to + // Class normalClass = objc_getClass("UIWebBrowserView"); + // object_setClass(browserView, normalClass); + + [browserView reloadInputViews]; +} + - (UIView *)hackishlyFoundBrowserView { UIScrollView *scrollView = self.scrollView; @@ -26,15 +48,27 @@ - (UIView *)hackishlyFoundBrowserView { return browserView; } -- (id)methodReturningNil { - return nil; +- (id)methodReturningCustomInputAccessoryView { + UIView *view = self; + UIView *customInputAccessoryView = nil; + + while (view && ![view isKindOfClass:[UIWebView class]]) { + view = view.superview; + } + + if ([view isKindOfClass:[UIWebView class]]) { + UIWebView *webView = (UIWebView*)view; + customInputAccessoryView = [webView cjw_inputAccessoryView]; + } + + return customInputAccessoryView; } - (void)ensureHackishSubclassExistsOfBrowserViewClass:(Class)browserViewClass { if (!hackishFixClass) { Class newClass = objc_allocateClassPair(browserViewClass, hackishFixClassName, 0); newClass = objc_allocateClassPair(browserViewClass, hackishFixClassName, 0); - IMP nilImp = [self methodForSelector:@selector(methodReturningNil)]; + IMP nilImp = [self methodForSelector:@selector(methodReturningCustomInputAccessoryView)]; class_addMethod(newClass, @selector(inputAccessoryView), nilImp, "@@:"); objc_registerClassPair(newClass); @@ -42,26 +76,4 @@ - (void)ensureHackishSubclassExistsOfBrowserViewClass:(Class)browserViewClass { } } -- (BOOL) cjw_hidesInputAccessoryView { - UIView *browserView = [self hackishlyFoundBrowserView]; - return [browserView class] == hackishFixClass; -} - -- (void) setCjw_hidesInputAccessoryView:(BOOL)value { - UIView *browserView = [self hackishlyFoundBrowserView]; - if (browserView == nil) { - return; - } - [self ensureHackishSubclassExistsOfBrowserViewClass:[browserView class]]; - - if (value) { - object_setClass(browserView, hackishFixClass); - } - else { - Class normalClass = objc_getClass("UIWebBrowserView"); - object_setClass(browserView, normalClass); - } - [browserView reloadInputViews]; -} - @end diff --git a/RichEditorView/Classes/RichEditorView.swift b/RichEditorView/Classes/RichEditorView.swift index eec1b359..f211729e 100644 --- a/RichEditorView/Classes/RichEditorView.swift +++ b/RichEditorView/Classes/RichEditorView.swift @@ -70,7 +70,16 @@ public class RichEditorView: UIView { webView.scrollView.scrollEnabled = scrollEnabled } } - + + /** + Input accessory view to display over they keyboard. + Defaults to nil + */ + public override var inputAccessoryView: UIView? { + get { return webView.cjw_inputAccessoryView } + set { webView.cjw_inputAccessoryView = newValue } + } + /** The internal UIWebView that is used to display the text. */ @@ -143,7 +152,7 @@ public class RichEditorView: UIView { webView.scrollView.delegate = self webView.scrollView.clipsToBounds = false - webView.cjw_hidesInputAccessoryView = true + webView.cjw_inputAccessoryView = nil self.addSubview(webView) diff --git a/RichEditorViewSample/RichEditorViewSample/ViewController.swift b/RichEditorViewSample/RichEditorViewSample/ViewController.swift index 2a5756ef..c81f04ab 100644 --- a/RichEditorViewSample/RichEditorViewSample/ViewController.swift +++ b/RichEditorViewSample/RichEditorViewSample/ViewController.swift @@ -10,19 +10,24 @@ import UIKit import RichEditorView class ViewController: UIViewController { + @IBOutlet var editorView: RichEditorView! @IBOutlet var htmlTextView: UITextView! - var toolbar: RichEditorToolbar { return self.keyboardManager.toolbar } - lazy var keyboardManager: KeyboardManager = { KeyboardManager(view: self.view) }() + lazy var toolbar: RichEditorToolbar = { + let toolbar = RichEditorToolbar(frame: CGRect(x: 0, y: 0, width: self.view.bounds.width, height: 44)) + toolbar.options = RichEditorOptions.all() + return toolbar + }() override func viewDidLoad() { super.viewDidLoad() - keyboardManager.toolbar.editor = self.editorView - + editorView.delegate = self + editorView.inputAccessoryView = toolbar toolbar.delegate = self + toolbar.editor = editorView // We will create a custom action that clears all the input text when it is pressed let item = RichEditorOptionItem(image: nil, title: "Clear") { toolbar in @@ -34,16 +39,6 @@ class ViewController: UIViewController { toolbar.options = options } - override func viewWillAppear(animated: Bool) { - super.viewWillAppear(animated) - keyboardManager.beginMonitoring() - } - - override func viewWillDisappear(animated: Bool) { - super.viewWillDisappear(animated) - keyboardManager.stopMonitoring() - } - } extension ViewController: RichEditorDelegate { From e3614ff8f53fa039001cc997ebf6960fec690c9d Mon Sep 17 00:00:00 2001 From: Caesar Wirth Date: Fri, 28 Aug 2015 19:47:01 +0900 Subject: [PATCH 12/15] Fix iOS 7 Support --- RichEditorView/Classes/RichEditorOptionItem.swift | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/RichEditorView/Classes/RichEditorOptionItem.swift b/RichEditorView/Classes/RichEditorOptionItem.swift index 0dc131b5..35a06bd4 100644 --- a/RichEditorView/Classes/RichEditorOptionItem.swift +++ b/RichEditorView/Classes/RichEditorOptionItem.swift @@ -143,7 +143,13 @@ public enum RichEditorOptions: RichEditorOption { } let bundle = NSBundle(forClass: RichEditorToolbar.self) - return UIImage(named: name, inBundle: bundle, compatibleWithTraitCollection: nil) + if #available(iOS 8.0, *) { + return UIImage(named: name, inBundle: bundle, compatibleWithTraitCollection: nil) + } else if let path = bundle.pathForResource(name, ofType: "png") { + return UIImage(contentsOfFile: path) + } else { + return nil + } } public func title() -> String { From 2627b2394444d0b10fe33b18827a7498c5e2333d Mon Sep 17 00:00:00 2001 From: Caesar Wirth Date: Fri, 28 Aug 2015 19:53:32 +0900 Subject: [PATCH 13/15] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index ff2e1f73..f5cb9a36 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ RichEditorView RichEditorView is a simple, modular, drop-in UIView subclass for Rich Text Editing. -Written in **Swift 2.0** (Xcode 7.0 beta 7A120f) +Written in **Swift 2.0** (Xcode 7.0 beta 6 (7A192o)) Supports iOS 8 and 9 through Cocoapods, or iOS 7 by including the source in your project. From fb66529d511a44838709962b1dd9305cf3c536c0 Mon Sep 17 00:00:00 2001 From: Caesar Wirth Date: Wed, 2 Sep 2015 09:00:06 +0900 Subject: [PATCH 14/15] Increased ObjC Support including an example --- .../Classes/RichEditorToolbar.swift | 7 +- RichEditorView/Classes/RichEditorView.swift | 2 +- .../project.pbxproj | 13 ++ .../Base.lproj/Main.storyboard | 130 ++++++++++++++++-- .../RichEditorViewSample/ObjCViewController.h | 19 +++ .../RichEditorViewSample/ObjCViewController.m | 57 ++++++++ .../RichEditorViewSample-Bridging-Header.h | 5 + 7 files changed, 219 insertions(+), 14 deletions(-) create mode 100644 RichEditorViewSample/RichEditorViewSample/ObjCViewController.h create mode 100644 RichEditorViewSample/RichEditorViewSample/ObjCViewController.m create mode 100644 RichEditorViewSample/RichEditorViewSample/RichEditorViewSample-Bridging-Header.h diff --git a/RichEditorView/Classes/RichEditorToolbar.swift b/RichEditorView/Classes/RichEditorToolbar.swift index 90d94eb7..58739ded 100644 --- a/RichEditorView/Classes/RichEditorToolbar.swift +++ b/RichEditorView/Classes/RichEditorToolbar.swift @@ -11,7 +11,7 @@ import UIKit RichEditorToolbarDelegate is a protocol for the RichEditorToolbar. Used to receive actions that need extra work to perform (eg. display some UI) */ -public protocol RichEditorToolbarDelegate: class { +@objc public protocol RichEditorToolbarDelegate: class { /** Called when the Text Color toolbar item is pressed. @@ -122,8 +122,9 @@ public class RichEditorToolbar: UIView { toolbarScroll.addSubview(toolbar) - self.addSubview(backgroundToolbar) - self.addSubview(toolbarScroll) + addSubview(backgroundToolbar) + addSubview(toolbarScroll) + updateToolbar() } private func updateToolbar() { diff --git a/RichEditorView/Classes/RichEditorView.swift b/RichEditorView/Classes/RichEditorView.swift index eec1b359..7c165856 100644 --- a/RichEditorView/Classes/RichEditorView.swift +++ b/RichEditorView/Classes/RichEditorView.swift @@ -10,7 +10,7 @@ import UIKit /** RichEditorDelegate defines callbacks for the delegate of the RichEditorView */ -public protocol RichEditorDelegate: class { +@objc public protocol RichEditorDelegate: class { /** Called when the inner height of the text being displayed changes diff --git a/RichEditorViewSample/RichEditorViewSample.xcodeproj/project.pbxproj b/RichEditorViewSample/RichEditorViewSample.xcodeproj/project.pbxproj index a0e6dac3..fb0e57e4 100644 --- a/RichEditorViewSample/RichEditorViewSample.xcodeproj/project.pbxproj +++ b/RichEditorViewSample/RichEditorViewSample.xcodeproj/project.pbxproj @@ -7,6 +7,7 @@ objects = { /* Begin PBXBuildFile section */ + 3912A4561B966C34005E41FA /* ObjCViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 3912A4551B966C34005E41FA /* ObjCViewController.m */; }; 39883B491AD0DC270031FD16 /* KeyboardManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 39883B481AD0DC270031FD16 /* KeyboardManager.swift */; }; 39BBCFB01AD0CC7A00A450D2 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 39BBCFAF1AD0CC7A00A450D2 /* AppDelegate.swift */; }; 39BBCFB21AD0CC7A00A450D2 /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 39BBCFB11AD0CC7A00A450D2 /* ViewController.swift */; }; @@ -29,6 +30,9 @@ /* Begin PBXFileReference section */ 374E2CA30A706AF05A5F787D /* Pods.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = Pods.release.xcconfig; path = "Pods/Target Support Files/Pods/Pods.release.xcconfig"; sourceTree = ""; }; + 3912A4531B966C34005E41FA /* RichEditorViewSample-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "RichEditorViewSample-Bridging-Header.h"; sourceTree = ""; }; + 3912A4541B966C34005E41FA /* ObjCViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ObjCViewController.h; sourceTree = ""; }; + 3912A4551B966C34005E41FA /* ObjCViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ObjCViewController.m; sourceTree = ""; }; 39883B481AD0DC270031FD16 /* KeyboardManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = KeyboardManager.swift; sourceTree = ""; }; 39BBCFAA1AD0CC7A00A450D2 /* RichEditorViewSample.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = RichEditorViewSample.app; sourceTree = BUILT_PRODUCTS_DIR; }; 39BBCFAE1AD0CC7A00A450D2 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; @@ -113,6 +117,9 @@ 39BBCFB81AD0CC7A00A450D2 /* LaunchScreen.xib */, 39BBCFAD1AD0CC7A00A450D2 /* Supporting Files */, 39883B481AD0DC270031FD16 /* KeyboardManager.swift */, + 3912A4541B966C34005E41FA /* ObjCViewController.h */, + 3912A4551B966C34005E41FA /* ObjCViewController.m */, + 3912A4531B966C34005E41FA /* RichEditorViewSample-Bridging-Header.h */, ); path = RichEditorViewSample; sourceTree = ""; @@ -303,6 +310,7 @@ buildActionMask = 2147483647; files = ( 39883B491AD0DC270031FD16 /* KeyboardManager.swift in Sources */, + 3912A4561B966C34005E41FA /* ObjCViewController.m in Sources */, 39BBCFB21AD0CC7A00A450D2 /* ViewController.swift in Sources */, 39BBCFB01AD0CC7A00A450D2 /* AppDelegate.swift in Sources */, ); @@ -430,10 +438,13 @@ baseConfigurationReference = CE9286ABAE36805B246B9522 /* Pods.debug.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; INFOPLIST_FILE = RichEditorViewSample/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 8.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OBJC_BRIDGING_HEADER = "RichEditorViewSample/RichEditorViewSample-Bridging-Header.h"; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; }; name = Debug; }; @@ -442,10 +453,12 @@ baseConfigurationReference = 374E2CA30A706AF05A5F787D /* Pods.release.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; INFOPLIST_FILE = RichEditorViewSample/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 8.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OBJC_BRIDGING_HEADER = "RichEditorViewSample/RichEditorViewSample-Bridging-Header.h"; }; name = Release; }; diff --git a/RichEditorViewSample/RichEditorViewSample/Base.lproj/Main.storyboard b/RichEditorViewSample/RichEditorViewSample/Base.lproj/Main.storyboard index abdcf3ea..2dbdeaaf 100644 --- a/RichEditorViewSample/RichEditorViewSample/Base.lproj/Main.storyboard +++ b/RichEditorViewSample/RichEditorViewSample/Base.lproj/Main.storyboard @@ -1,29 +1,29 @@ - + - + - + - + - + - + @@ -33,14 +33,14 @@ - + - + @@ -59,7 +59,7 @@ - + @@ -68,7 +68,117 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/RichEditorViewSample/RichEditorViewSample/ObjCViewController.h b/RichEditorViewSample/RichEditorViewSample/ObjCViewController.h new file mode 100644 index 00000000..6d3ef9e7 --- /dev/null +++ b/RichEditorViewSample/RichEditorViewSample/ObjCViewController.h @@ -0,0 +1,19 @@ +// +// ObjCViewController.h +// RichEditorViewSample +// +// Created by Caesar Wirth on 9/2/15. +// Copyright (c) 2015 Caesar Wirth. All rights reserved. +// + +#import +@class RichEditorView, KeyboardManager; + +@interface ObjCViewController : UIViewController +@property (nonatomic, strong) IBOutlet RichEditorView *editorView; +@property (nonatomic, strong) IBOutlet UITextView *htmlTextView; + +// The keyboardManager allows us to display the toolbar +// However, some of the features of the RichEditorToolbar are not supported from Objective-C +@property (nonatomic, strong) KeyboardManager *keyboardManager; +@end diff --git a/RichEditorViewSample/RichEditorViewSample/ObjCViewController.m b/RichEditorViewSample/RichEditorViewSample/ObjCViewController.m new file mode 100644 index 00000000..86f14484 --- /dev/null +++ b/RichEditorViewSample/RichEditorViewSample/ObjCViewController.m @@ -0,0 +1,57 @@ +// +// ObjCViewController.m +// RichEditorViewSample +// +// Created by Caesar Wirth on 9/2/15. +// Copyright (c) 2015 Caesar Wirth. All rights reserved. +// + +#import "ObjCViewController.h" +#import +#import "RichEditorViewSample-Swift.h" + +@interface ObjCViewController() +@end + +@implementation ObjCViewController + +- (void)viewDidLoad { + [super viewDidLoad]; + self.editorView.delegate = self; + + self.keyboardManager = [[KeyboardManager alloc] initWithView:self.view]; + self.keyboardManager.toolbar.editor = self.editorView; +} + +- (void)viewWillAppear:(BOOL)animated { + [super viewWillAppear:animated]; + [self.keyboardManager beginMonitoring]; +} + +- (void)viewWillDisappear:(BOOL)animated { + [super viewWillDisappear:animated]; + [self.keyboardManager stopMonitoring]; +} + +//------------------------------------------------------------------------------ +#pragma mark - RichEditorViewDelegate + +- (void)richEditor:(RichEditorView * __nonnull)editor contentDidChange:(NSString * __nonnull)content { + if (content.length == 0) { + self.htmlTextView.text = @"HTML Preview"; + } else { + self.htmlTextView.text = content; + } +} + +- (BOOL)richEditorShouldInteractWithURL:(NSURL * __nonnull)url { + return true; +} + +- (void)richEditor:(RichEditorView * __nonnull)editor heightDidChange:(NSInteger)height {} +- (void)richEditorTookFocus:(RichEditorView * __nonnull)editor {} +- (void)richEditorLostFocus:(RichEditorView * __nonnull)editor {} +- (void)richEditorDidLoad:(RichEditorView * __nonnull)editor {} +- (void)richEditor:(RichEditorView * __nonnull)editor handleCustomAction:(NSString * __nonnull)action {} + +@end diff --git a/RichEditorViewSample/RichEditorViewSample/RichEditorViewSample-Bridging-Header.h b/RichEditorViewSample/RichEditorViewSample/RichEditorViewSample-Bridging-Header.h new file mode 100644 index 00000000..8825cdaf --- /dev/null +++ b/RichEditorViewSample/RichEditorViewSample/RichEditorViewSample-Bridging-Header.h @@ -0,0 +1,5 @@ +// +// Use this file to import your target's public headers that you would like to expose to Swift. +// + +#import "ObjCViewController.h" From 7d96ced3a2d561a46a7c7ebf35ea2caebf234f53 Mon Sep 17 00:00:00 2001 From: Caesar Wirth Date: Thu, 17 Sep 2015 13:05:41 +0900 Subject: [PATCH 15/15] Update project to 2.0.0 for Swift 2.0 --- .RichEditorView.podspec.swp | Bin 0 -> 12288 bytes README.md | 12 +- RichEditorView.podspec | 4 +- .../Classes/RichEditorOptionItem.swift | 8 +- RichEditorViewSample/Podfile.lock | 8 +- .../CJWWebView+HackishAccessoryHiding.h | 1 - .../RichEditorView.podspec.json | 4 +- RichEditorViewSample/Pods/Manifest.lock | 8 +- .../Pods/Pods.xcodeproj/project.pbxproj | 916 +++++++++--------- .../xcschemes/RichEditorView.xcscheme | 62 ++ .../Pods-RichEditorView-Private.xcconfig | 10 - .../Pods-RichEditorView-dummy.m | 5 - .../Pods/Pods-environment.h | 14 - .../Pods/Pods-frameworks.sh | 42 +- .../Pods/Pods-resources.sh | 27 +- .../Pods/Pods.debug.xcconfig | 6 +- .../Pods/Pods.release.xcconfig | 6 +- .../Info.plist | 2 +- .../RichEditorView-Private.xcconfig | 6 + .../RichEditorView/RichEditorView-dummy.m | 5 + .../RichEditorView-prefix.pch} | 1 - .../RichEditorView-umbrella.h} | 0 .../RichEditorView.modulemap} | 2 +- .../RichEditorView.xcconfig} | 0 .../project.pbxproj | 12 - .../RichEditorViewSample/ObjCViewController.m | 2 +- 26 files changed, 598 insertions(+), 565 deletions(-) create mode 100644 .RichEditorView.podspec.swp delete mode 120000 RichEditorViewSample/Pods/Headers/Public/RichEditorView/CJWWebView+HackishAccessoryHiding.h create mode 100644 RichEditorViewSample/Pods/Pods.xcodeproj/xcshareddata/xcschemes/RichEditorView.xcscheme delete mode 100644 RichEditorViewSample/Pods/Target Support Files/Pods-RichEditorView/Pods-RichEditorView-Private.xcconfig delete mode 100644 RichEditorViewSample/Pods/Target Support Files/Pods-RichEditorView/Pods-RichEditorView-dummy.m delete mode 100644 RichEditorViewSample/Pods/Target Support Files/Pods/Pods-environment.h rename RichEditorViewSample/Pods/Target Support Files/{Pods-RichEditorView => RichEditorView}/Info.plist (97%) create mode 100644 RichEditorViewSample/Pods/Target Support Files/RichEditorView/RichEditorView-Private.xcconfig create mode 100644 RichEditorViewSample/Pods/Target Support Files/RichEditorView/RichEditorView-dummy.m rename RichEditorViewSample/Pods/Target Support Files/{Pods-RichEditorView/Pods-RichEditorView-prefix.pch => RichEditorView/RichEditorView-prefix.pch} (62%) rename RichEditorViewSample/Pods/Target Support Files/{Pods-RichEditorView/Pods-RichEditorView-umbrella.h => RichEditorView/RichEditorView-umbrella.h} (100%) rename RichEditorViewSample/Pods/Target Support Files/{Pods-RichEditorView/Pods-RichEditorView.modulemap => RichEditorView/RichEditorView.modulemap} (58%) rename RichEditorViewSample/Pods/Target Support Files/{Pods-RichEditorView/Pods-RichEditorView.xcconfig => RichEditorView/RichEditorView.xcconfig} (100%) diff --git a/.RichEditorView.podspec.swp b/.RichEditorView.podspec.swp new file mode 100644 index 0000000000000000000000000000000000000000..33ae86bb14b94890dea2123dd2876d05bc8913f0 GIT binary patch literal 12288 zcmeI2&uSAv9LJ|UTNMj>5aieO5RhayO^YTA5w%rN6oaw#AQGmVNiwp#v(C(R6|264 zUOo8$Uc?9R;9JxO@BtK0{`OBv8!+Or@*DVOGBdxwpKJ~xv(wzZeGjg<>kP+f#=iQ$ zw%&ePU3_<*F}~XBv@hoe^G9!^(OK^_=NsYa>oTCXDRxDu5}`eLzwbSe!Q|#pTBWz8 z$Yz#qqJ}0B!CzyO0TCbqa|on%)MziUwbp9!MZM^(!19@`ISzD01c(3;AOb{y2oM1x zKm>@u|3<(j3+xRxwOBQ_T+ItJbG4+22oM1xKm>>Y5g-CYfCvx)B0vO)01-Hb1o)7# z{S%DcTEgP-|Nn#E|KCqB_679;#ZebfKTk6D8Fd$R4s{mw1O2|C_E8^E?@<}5hq{Bx z<91LqhyW2F0z`la5CI}U1c(3;AOgpifQW|-a6Dlmp1#j_0BSRrny(uptnox~&DpzD zV};e9%w(WqgI0AkGp-g!r8*D>y70KzDc6IM42#X#WE&yJba?<)1$dT9j56Rlz!+Ai zqS#MDZbwQ-kdH3-Qkgo`+HSM*Gb)fg97I?(AEY`&o7%+M#Q2_PGij~RZlEGBc$!IV zCwWuGEo&=6mM>j+3I14G=w1cqz#Z3|05w< mZqsd+$1#tl1?EOr= 1.2.0 +github 'cjwirth/RichEditorView' ``` -### iOS 7 - -Just add everything in the `RichEditorView/Assets` and `RichEditorView/Classes` directories to your project. - Using RichEditorView -------------------- diff --git a/RichEditorView.podspec b/RichEditorView.podspec index 32ce3696..c39e592b 100644 --- a/RichEditorView.podspec +++ b/RichEditorView.podspec @@ -1,7 +1,7 @@ Pod::Spec.new do |s| s.name = "RichEditorView" - s.version = "1.2.0" - s.summary = "A beautiful Rich Text Editor for iOS written in Swift" + s.version = "2.0.0" + s.summary = "Rich Text Editor for iOS written in Swift" s.homepage = "https://github.com/cjwirth/RichEditorView" s.license = 'BSD 3-clause' s.author = { "Caesar Wirth" => "cjwirth@gmail.com" } diff --git a/RichEditorView/Classes/RichEditorOptionItem.swift b/RichEditorView/Classes/RichEditorOptionItem.swift index 35a06bd4..0dc131b5 100644 --- a/RichEditorView/Classes/RichEditorOptionItem.swift +++ b/RichEditorView/Classes/RichEditorOptionItem.swift @@ -143,13 +143,7 @@ public enum RichEditorOptions: RichEditorOption { } let bundle = NSBundle(forClass: RichEditorToolbar.self) - if #available(iOS 8.0, *) { - return UIImage(named: name, inBundle: bundle, compatibleWithTraitCollection: nil) - } else if let path = bundle.pathForResource(name, ofType: "png") { - return UIImage(contentsOfFile: path) - } else { - return nil - } + return UIImage(named: name, inBundle: bundle, compatibleWithTraitCollection: nil) } public func title() -> String { diff --git a/RichEditorViewSample/Podfile.lock b/RichEditorViewSample/Podfile.lock index df460057..fef7d93c 100644 --- a/RichEditorViewSample/Podfile.lock +++ b/RichEditorViewSample/Podfile.lock @@ -1,14 +1,14 @@ PODS: - - RichEditorView (1.0.0) + - RichEditorView (1.2.0) DEPENDENCIES: - RichEditorView (from `../`) EXTERNAL SOURCES: RichEditorView: - :path: ../ + :path: "../" SPEC CHECKSUMS: - RichEditorView: 06914a5e35849865d7e75f54a9ff0d508d399631 + RichEditorView: 7eca92756685c5968917a9df23b7588e97ca1769 -COCOAPODS: 0.36.3 +COCOAPODS: 0.38.2 diff --git a/RichEditorViewSample/Pods/Headers/Public/RichEditorView/CJWWebView+HackishAccessoryHiding.h b/RichEditorViewSample/Pods/Headers/Public/RichEditorView/CJWWebView+HackishAccessoryHiding.h deleted file mode 120000 index ebfde8f7..00000000 --- a/RichEditorViewSample/Pods/Headers/Public/RichEditorView/CJWWebView+HackishAccessoryHiding.h +++ /dev/null @@ -1 +0,0 @@ -../../../../../RichEditorView/Classes/CJWWebView+HackishAccessoryHiding.h \ No newline at end of file diff --git a/RichEditorViewSample/Pods/Local Podspecs/RichEditorView.podspec.json b/RichEditorViewSample/Pods/Local Podspecs/RichEditorView.podspec.json index e1daef63..d2bc7061 100644 --- a/RichEditorViewSample/Pods/Local Podspecs/RichEditorView.podspec.json +++ b/RichEditorViewSample/Pods/Local Podspecs/RichEditorView.podspec.json @@ -1,6 +1,6 @@ { "name": "RichEditorView", - "version": "1.0.0", + "version": "1.2.0", "summary": "A beautiful Rich Text Editor for iOS written in Swift", "homepage": "https://github.com/cjwirth/RichEditorView", "license": "BSD 3-clause", @@ -9,7 +9,7 @@ }, "source": { "git": "https://github.com/cjwirth/RichEditorView.git", - "tag": "1.0.0" + "tag": "1.2.0" }, "social_media_url": "https://twitter.com/cjwirth", "platforms": { diff --git a/RichEditorViewSample/Pods/Manifest.lock b/RichEditorViewSample/Pods/Manifest.lock index df460057..fef7d93c 100644 --- a/RichEditorViewSample/Pods/Manifest.lock +++ b/RichEditorViewSample/Pods/Manifest.lock @@ -1,14 +1,14 @@ PODS: - - RichEditorView (1.0.0) + - RichEditorView (1.2.0) DEPENDENCIES: - RichEditorView (from `../`) EXTERNAL SOURCES: RichEditorView: - :path: ../ + :path: "../" SPEC CHECKSUMS: - RichEditorView: 06914a5e35849865d7e75f54a9ff0d508d399631 + RichEditorView: 7eca92756685c5968917a9df23b7588e97ca1769 -COCOAPODS: 0.36.3 +COCOAPODS: 0.38.2 diff --git a/RichEditorViewSample/Pods/Pods.xcodeproj/project.pbxproj b/RichEditorViewSample/Pods/Pods.xcodeproj/project.pbxproj index ac3c95db..c5f760b8 100644 --- a/RichEditorViewSample/Pods/Pods.xcodeproj/project.pbxproj +++ b/RichEditorViewSample/Pods/Pods.xcodeproj/project.pbxproj @@ -7,680 +7,644 @@ objects = { /* Begin PBXBuildFile section */ - 003BC641E332998192435123 /* justify_center.png in Resources */ = {isa = PBXBuildFile; fileRef = 9697D7CE7649F513B3073F77 /* justify_center.png */; }; - 02499AA1195BAA6FF8851C89 /* h2@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4509F2AB216C3012DAD9D0BE /* h2@2x.png */; }; - 07F4FA2B26BC4CBFA11326F8 /* h6@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = D3A50E6306185A50CF392903 /* h6@2x.png */; }; - 0BE73198D6C581F95968FA0F /* h6.png in Resources */ = {isa = PBXBuildFile; fileRef = F3815C1029A482E6212ECF40 /* h6.png */; }; - 0C29F178FDC2077F5F61C8BD /* insert_image@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = CA610F44DFBF7CB4441F0CB8 /* insert_image@2x.png */; }; - 0D24CBC20CB0FA1BEF86F915 /* insert_link@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 772F1955F3B60B3BC96737C3 /* insert_link@2x.png */; }; - 10B159F3AAAF46AB79B46E6B /* RichEditorView.swift in Sources */ = {isa = PBXBuildFile; fileRef = E59C85E274A28673CA01B7A9 /* RichEditorView.swift */; }; - 119C123085569AED4CAF8AAF /* undo@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = F6F1B7AA64AA59EF54D64751 /* undo@2x.png */; }; - 1F27E3193C7A98785CC27491 /* rich_editor.js in Resources */ = {isa = PBXBuildFile; fileRef = 4021886FBFBF67C689A7DA4F /* rich_editor.js */; }; - 2BCB0A16C0BB018C9F547DBF /* bg_color.png in Resources */ = {isa = PBXBuildFile; fileRef = DB22487393CACF864C4A62E4 /* bg_color.png */; }; - 2BFCF607219FE7BAD400C4C5 /* RichEditorToolbar.swift in Sources */ = {isa = PBXBuildFile; fileRef = B2C67FBD99DD51C55AF39643 /* RichEditorToolbar.swift */; }; - 2D22CCE9876DEF32F432324A /* indent@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 544E3794B5BEA9F4B9D1DD8F /* indent@2x.png */; }; - 31AC69501473C4C2D1D301E5 /* subscript.png in Resources */ = {isa = PBXBuildFile; fileRef = 3537AFB1AB7BE2AEAE49F5FF /* subscript.png */; }; - 34356500D81FA7410B42D3BE /* h4.png in Resources */ = {isa = PBXBuildFile; fileRef = D0E6EB420D33EB158BBFBE10 /* h4.png */; }; - 353FE026FA6A45650151AA45 /* h5@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = CC4DC5A9C0896924E0887F53 /* h5@2x.png */; }; - 3631DB42EAB14287F5DF0C97 /* justify_left.png in Resources */ = {isa = PBXBuildFile; fileRef = 12D4E53A89B22F1BD09DF0C0 /* justify_left.png */; }; - 3C274942C6B5A7C00C221998 /* underline.png in Resources */ = {isa = PBXBuildFile; fileRef = 629ED5D6905E42E031290948 /* underline.png */; }; - 3C42391413623CE11DA5BC2D /* unordered_list@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 3ABCD2BA4423C9608209B3BE /* unordered_list@2x.png */; }; - 457FCD326D0640D3C6AFEF46 /* Pods-RichEditorView-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = D06D0BB4C213C7F7920A4C92 /* Pods-RichEditorView-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 489606632B872E6AF9384BAD /* justify_left@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = C9327707A8515F328C7CCB03 /* justify_left@2x.png */; }; - 48B26547E3060C0F5EC88D9A /* superscript.png in Resources */ = {isa = PBXBuildFile; fileRef = 633243F02A8D803580784EC6 /* superscript.png */; }; - 4B68F50964D4DCEBF5A97CBB /* h1.png in Resources */ = {isa = PBXBuildFile; fileRef = 8768BCD948AA0CD41431E16D /* h1.png */; }; - 4D0879ECD60B78BC4E56E540 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 69C59D44323B760EBFDDCEEC /* Foundation.framework */; }; - 4E2F1BBA274F84B66D1AA978 /* bg_color@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4D98ECA96A24D95505594955 /* bg_color@2x.png */; }; - 50AAAA4C80AAD5DAB2CA09DA /* h5.png in Resources */ = {isa = PBXBuildFile; fileRef = 83DA42E6AB080AFAE7050146 /* h5.png */; }; - 526FFEA4B0A617F5089CB315 /* unordered_list.png in Resources */ = {isa = PBXBuildFile; fileRef = 735DD13AE93F655950AFCA26 /* unordered_list.png */; }; - 562E1D910CCAB194D7A3E1BF /* insert_link.png in Resources */ = {isa = PBXBuildFile; fileRef = E9F0D941AE0AA81F049EAC26 /* insert_link.png */; }; - 5C015C796E239516F7BDF362 /* indent.png in Resources */ = {isa = PBXBuildFile; fileRef = F7A4BB48603D740670A0EA8D /* indent.png */; }; - 5E2310DD9250B08B9E4442BC /* italic.png in Resources */ = {isa = PBXBuildFile; fileRef = B5143FC01CDD2D670855ECA0 /* italic.png */; }; - 60886F0C0F34346E03F44BAE /* text_color.png in Resources */ = {isa = PBXBuildFile; fileRef = 45AF84741A09FC2DD0070D4C /* text_color.png */; }; - 62B5A848B483813C20736B2A /* normalize.css in Resources */ = {isa = PBXBuildFile; fileRef = 35A3BA947388CA75A239F8A3 /* normalize.css */; }; - 64A4198FBE2E766263476F58 /* insert_image.png in Resources */ = {isa = PBXBuildFile; fileRef = 99F220989EF24ABD4694C2D3 /* insert_image.png */; }; - 66F5DC19FC6377A0AEF0B7A9 /* italic@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 706C7FAEE96385E16167389B /* italic@2x.png */; }; - 6B4A024CEDC6FCD104C596F3 /* RichEditorOptionItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = C9A477EB8444D13C3B25C6E5 /* RichEditorOptionItem.swift */; }; - 6E876E2337DC69D155730EF4 /* ordered_list.png in Resources */ = {isa = PBXBuildFile; fileRef = 4643A22A4BD7461103ADFE1E /* ordered_list.png */; }; - 777CE4B546616CF6A4649FEE /* underline@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 88628E630AAFE6D2C1672355 /* underline@2x.png */; }; - 78FC370CB8308B4B73539AF3 /* clear.png in Resources */ = {isa = PBXBuildFile; fileRef = 46835B6B549D4E1BCB3423C7 /* clear.png */; }; - 7F300EDAD743AF81BD91061E /* Pods-RichEditorView-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = F54282F0D039DE86BA022C89 /* Pods-RichEditorView-dummy.m */; }; - 81983161C0F09E28BEF753E3 /* outdent.png in Resources */ = {isa = PBXBuildFile; fileRef = 50480F8F1DDC80CB88DA8837 /* outdent.png */; }; - 85E1184AAE1A4986D659DBDF /* outdent@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 90B96DAD50463A60AF163D1C /* outdent@2x.png */; }; - 860F0DB8225FBC9B28E6F3DF /* superscript@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = A6BEF5EC4DBC616955365589 /* superscript@2x.png */; }; - 90101817591F4D8A41A3BFDF /* justify_right.png in Resources */ = {isa = PBXBuildFile; fileRef = 9177FD89DCA3FA5640FE26A2 /* justify_right.png */; }; - 962C21FA0A9889F91AD6E59F /* h3@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = EB24A067502388A9ECE1BF6A /* h3@2x.png */; }; - 99885FB9BB05A449A8EFA67D /* undo.png in Resources */ = {isa = PBXBuildFile; fileRef = 6F09A8954DE9BAF4B048C389 /* undo.png */; }; - 9AECFE4C5B8A877B48F1271E /* h2.png in Resources */ = {isa = PBXBuildFile; fileRef = 49699C9F422A15921531DEEB /* h2.png */; }; - 9D13B28035AB3945F6AC070A /* bold.png in Resources */ = {isa = PBXBuildFile; fileRef = 7E82DB53BBEB978E2B953EC3 /* bold.png */; }; - A6A31EF406F255B95E254B5D /* Pods-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 548E17EBC8C5DBCA17A32EED /* Pods-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - AADF77811646BB276DE7BED0 /* Pods-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = D5C611B4D3E5A3271D68A5DE /* Pods-dummy.m */; }; - B005C18EAB219FC206DBF4FE /* strikethrough@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 19427BB57E3176D9133885BE /* strikethrough@2x.png */; }; - B6C2090E7737FD84BA14E932 /* rich_editor.html in Resources */ = {isa = PBXBuildFile; fileRef = C895DE2DA8C06C4F3FDFE06E /* rich_editor.html */; }; - B7DB7DC2DDEDAB918E65CB0E /* h4@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = D3BEC5EA0A0ABE5AB8C7028D /* h4@2x.png */; }; - B964C2C3D2EE8AB1B8B0A475 /* subscript@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 91D334D59C6292E3E54FE396 /* subscript@2x.png */; }; - BDDC5458C9120F30E668967B /* clear@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 5C156149120E02F09B927778 /* clear@2x.png */; }; - C519BDDD8AEFD8B61A25FCBA /* text_color@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 00EF37E2952FDB7E9CE03B86 /* text_color@2x.png */; }; - C8A3FD6A56491037B8FE58D7 /* CJWWebView+HackishAccessoryHiding.h in Headers */ = {isa = PBXBuildFile; fileRef = 433637F5B63BAAC4A1094B5E /* CJWWebView+HackishAccessoryHiding.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C98DCFBAD1C2953722532413 /* h3.png in Resources */ = {isa = PBXBuildFile; fileRef = 972FA3D46F67AA2E58EF9C33 /* h3.png */; }; - D14F79BFEEE3253F7FAC4837 /* strikethrough.png in Resources */ = {isa = PBXBuildFile; fileRef = 627883BEF278151730E55629 /* strikethrough.png */; }; - D228659B9DEDD0E44E023776 /* justify_center@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = AFF7FFE0B8B5649E849A21D2 /* justify_center@2x.png */; }; - D3480F8D93862F1CAD7DD829 /* CJWWebView+HackishAccessoryHiding.m in Sources */ = {isa = PBXBuildFile; fileRef = 8D4C59C058EE09297234A1A0 /* CJWWebView+HackishAccessoryHiding.m */; }; - D6E80380BB4AA35FD43974F5 /* ordered_list@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = F6B1495AC180074BEEF03B85 /* ordered_list@2x.png */; }; - DA297A6DD854EB271729D3EE /* redo.png in Resources */ = {isa = PBXBuildFile; fileRef = FB8A44C5997BEA9207E92ACA /* redo.png */; }; - DAD4FCF1A302DF332DD663BF /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 69C59D44323B760EBFDDCEEC /* Foundation.framework */; }; - DEB81B22E8BFFD8B9124C35D /* redo@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 0C81CCDD9E290AC50714FF56 /* redo@2x.png */; }; - DED077160BE7F529C7E669CE /* bold@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 010D34B78B397B510FFBBF3F /* bold@2x.png */; }; - E28FD0BDCD29791A764A0B17 /* justify_right@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 0638E6BB3038A7D5FEF340C1 /* justify_right@2x.png */; }; - F396E2BC31C15C145B0B528C /* h1@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = A426A5715651AD81359CBA5A /* h1@2x.png */; }; - FE616862A2B4C88C3F173C18 /* style.css in Resources */ = {isa = PBXBuildFile; fileRef = 66BAEA44FEA510C7D226F93D /* style.css */; }; + 0A7CB92D9B60EBFEBA1433A61383CD51 /* bg_color.png in Resources */ = {isa = PBXBuildFile; fileRef = C4FB27C9B180E6B2F2CE80E0C85FD3DA /* bg_color.png */; }; + 0AD59E3BC21974B6CEE63A4561CC95DB /* ordered_list@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = F2C87E7DEC33A32A20171EBE102F9882 /* ordered_list@2x.png */; }; + 0B474D05FFCE68274048ED499D5535BA /* h6@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = C5C3F23004040B0EB783DC80F42F43CE /* h6@2x.png */; }; + 0C00E419DD8A6297A4493EB925141917 /* h4.png in Resources */ = {isa = PBXBuildFile; fileRef = 8B7C4F959A68D221CA4C9A428721AAB8 /* h4.png */; }; + 0FFDA500124CDFC07856BB2DE23A8C7E /* insert_image@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = CD06DEA628183B7DE5F6DC33C2331A6A /* insert_image@2x.png */; }; + 11C4DFE6640862E24DFCA138A396AA49 /* rich_editor.js in Resources */ = {isa = PBXBuildFile; fileRef = 72DECD6331C458A0497A5FA1397F0723 /* rich_editor.js */; }; + 18D13AE87E78AB2A6B9CF00C22C8089A /* outdent.png in Resources */ = {isa = PBXBuildFile; fileRef = D5DBB378AA84BFFF56EC4072F4EF5CB2 /* outdent.png */; }; + 19F9DA4E5BBFD6161EA0557352232162 /* redo@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 59D01B24EC7A33D9ED9B2538F09F143C /* redo@2x.png */; }; + 1AFF959304B7A5099F610EB3FB67831D /* insert_image.png in Resources */ = {isa = PBXBuildFile; fileRef = 24A5691741364DB8BAAE8246176FD301 /* insert_image.png */; }; + 1B786D50F000C7E956E9FC442B2804B0 /* bold.png in Resources */ = {isa = PBXBuildFile; fileRef = 6674A931DF7348F13B15C7BA53B1616D /* bold.png */; }; + 360FDD8A355C7C08F3E64217EC1651A6 /* superscript@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 86FA2D1B623DEA4897A8B1212547205A /* superscript@2x.png */; }; + 365A08EF770393A7F3D7BD4E7332082D /* underline.png in Resources */ = {isa = PBXBuildFile; fileRef = 79AA5CB16D3DF55B6C158413C503C955 /* underline.png */; }; + 398D58053A40859559DDD91BC561B5E9 /* unordered_list.png in Resources */ = {isa = PBXBuildFile; fileRef = E8545190886F865C1C7C6E6BDBB70919 /* unordered_list.png */; }; + 4188CD27D63A34D60D6E1D65205EFCD4 /* justify_left@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4ACD72E7575729612B2A86B0ECBDF665 /* justify_left@2x.png */; }; + 4451B3E8C834A0BF5287C189C25E3AE7 /* undo.png in Resources */ = {isa = PBXBuildFile; fileRef = 418EBD40A41947B591F5A678299EAA54 /* undo.png */; }; + 44F03BC39ACA957C6DEC68A67CCC8F26 /* ordered_list.png in Resources */ = {isa = PBXBuildFile; fileRef = CC3ACFC2EFAA8643126D4EC92DA39F79 /* ordered_list.png */; }; + 46311FB01112E3E963E796C213FC062A /* clear.png in Resources */ = {isa = PBXBuildFile; fileRef = 0930D3C7089AA949FB4271754F044404 /* clear.png */; }; + 4942E9189E704E3BB0D1266E8EE89FD6 /* RichEditorToolbar.swift in Sources */ = {isa = PBXBuildFile; fileRef = 57E9CD13AC9C4022EA759F38183414BB /* RichEditorToolbar.swift */; }; + 4AC6911F5F539E09971686D391A3AA67 /* h3.png in Resources */ = {isa = PBXBuildFile; fileRef = 470C8CA73D16C6733545D2039982499B /* h3.png */; }; + 55FC8D79F0AD464252DFF12DD278CB7C /* h6.png in Resources */ = {isa = PBXBuildFile; fileRef = 3958C6C23B73B9CCA72ACB84BBBA2DBD /* h6.png */; }; + 5742131BB14FC41B1F4ECD6A8736D0FC /* bg_color@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 2101882D166D075AC4D91771FFA16470 /* bg_color@2x.png */; }; + 588B97924F15952BF6EF21352AE2C37C /* h1@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E3C965CA9D0AD913A9E37A12DF3BD1CF /* h1@2x.png */; }; + 5F2EB8C17FB5735BB38915D25E1EE494 /* clear@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = A1B6EFF656DDAFDAA0DB6DFEC5902E99 /* clear@2x.png */; }; + 5FD0619418D1B3BC8F44D5B15B331A4F /* insert_link@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = A0B66D6BC970C0B79CBCF2FAD9221197 /* insert_link@2x.png */; }; + 6039FD657DB0EB0AFD430A549721D239 /* style.css in Resources */ = {isa = PBXBuildFile; fileRef = 943E8FF26E979303AC35BBC688E72655 /* style.css */; }; + 605C95508FB754789A8246DD77A04675 /* insert_link.png in Resources */ = {isa = PBXBuildFile; fileRef = A7E6DE83B37D23C1C92CE1FD527EA9F2 /* insert_link.png */; }; + 62266FD79B4C708D4387A6C94839039B /* h5@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 91ED01ECA79B482D249E115D2D6143AF /* h5@2x.png */; }; + 6539961F512FB9861A5570AB07B2D71E /* italic.png in Resources */ = {isa = PBXBuildFile; fileRef = 94244EF11A421CE4AD0E371D15AF729F /* italic.png */; }; + 73E66254CA7CE23C0CF95B536EE88117 /* h4@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = FB5710756CCF282E69C471B9F81B0D43 /* h4@2x.png */; }; + 7452A7CF2633C9158B0FB6D2B2A502F1 /* justify_center@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1D182324205BA9FE56AEA5875C68611 /* justify_center@2x.png */; }; + 7467A8AAA1F476C133D92B10113CA04B /* Pods-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 7CC846C653E24DA3914659FA2E38A482 /* Pods-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 7AFA14E4DC3C058295AA130A5B907FBF /* justify_right.png in Resources */ = {isa = PBXBuildFile; fileRef = C7B9089E6B2D72C2D0A9899263315797 /* justify_right.png */; }; + 7E824D7BA50A4BD21ACA139EE47105CC /* RichEditorView-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 38131B95BC8C649EFADFC5D11FAE30AA /* RichEditorView-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 7FD524B6FF99865B6E3B5BBBB91E619A /* unordered_list@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 08ED17F735A852EE682D96B9673F3E18 /* unordered_list@2x.png */; }; + 81FBC0B301268A4E956F86A515646056 /* undo@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 97DC161611E4AE12E28808EC6EA65E65 /* undo@2x.png */; }; + 83793995E51450EFAB82570D5BE78AC6 /* subscript@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E9AE75540ED78897DF0D3081D0CBC139 /* subscript@2x.png */; }; + 880C359B267137F21BB3EC3D694F9B66 /* underline@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = F6D2BC4D045674D6006BCAA798793BE7 /* underline@2x.png */; }; + 89C367678FDAA632D2DF450E0E795142 /* strikethrough@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 5E61FB8344F98968C9A921B787C4C854 /* strikethrough@2x.png */; }; + 8B1DBA8290010CE6C16C05384B900484 /* justify_center.png in Resources */ = {isa = PBXBuildFile; fileRef = CC7F75E8ADFD7759DDA253EBB4382B2B /* justify_center.png */; }; + 8E4BD9B0FF181B163C0756801A74CD97 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0BA92AEA4DC62E8E324D658E10A0FF15 /* Foundation.framework */; }; + 8F21D7DF1CF54D0A4671337355ABC388 /* h1.png in Resources */ = {isa = PBXBuildFile; fileRef = 16AE4C353553839625FD4475F7F75C54 /* h1.png */; }; + 93AA7BF8E427EE6A604FCC7850CA5E0C /* strikethrough.png in Resources */ = {isa = PBXBuildFile; fileRef = 44260AD4E3D32750F2A47735D8CD3DC9 /* strikethrough.png */; }; + 9493F1151B669AD803836D1B0BD07C3E /* superscript.png in Resources */ = {isa = PBXBuildFile; fileRef = 593309912338CF82A72D40C3DE74D873 /* superscript.png */; }; + 958C6C82F9AAE08ED9A79892D74373A4 /* Pods-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 376916201D2BF14D09B580F2C50D5C36 /* Pods-dummy.m */; }; + 98D5C8EB14B2927894D58E0965D4155F /* redo.png in Resources */ = {isa = PBXBuildFile; fileRef = BB83B42D52690187B6EB2DA2151B4595 /* redo.png */; }; + 9F1C146C52902690B3E0AEFB85A2D588 /* h5.png in Resources */ = {isa = PBXBuildFile; fileRef = 9DA4B6109E30B17EA767C5741A01B129 /* h5.png */; }; + 9FC5404AA0995873C4B6148E67555583 /* text_color@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 3B6D49626EE88F827BA3F6013B16FF4F /* text_color@2x.png */; }; + A0AFC7AF87CC462319FDF468EC18611B /* CJWWebView+HackishAccessoryHiding.h in Headers */ = {isa = PBXBuildFile; fileRef = 174060CAA9621D67A8216F6ECB63580A /* CJWWebView+HackishAccessoryHiding.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A387D60CE6D75BD77775A1EEC3AEA28C /* italic@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 44C8A5766804637241E54FA598806438 /* italic@2x.png */; }; + AA6182C01A363AFA6AE6BE73CD7EF86B /* h2@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 459C166FE4219891F9BACEAA264A67CB /* h2@2x.png */; }; + AB1DA315DEB0172A1EB01725DC4A62E0 /* RichEditorView-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 1BA8410E59334394C8A315AAEC0E99C2 /* RichEditorView-dummy.m */; }; + B130B708173111CC01E6D26069DC2C0A /* CJWWebView+HackishAccessoryHiding.m in Sources */ = {isa = PBXBuildFile; fileRef = EBF46CDD1CC38F5C2B43D1A4A1DDC37F /* CJWWebView+HackishAccessoryHiding.m */; }; + B166AAD8F6BB060D0E186C8A2EC17787 /* normalize.css in Resources */ = {isa = PBXBuildFile; fileRef = 80BE8D7A908D371B3513CAF091A302FB /* normalize.css */; }; + B39703F05FB7CBE2B28A8CFA1B4862BE /* justify_right@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = F87E7F95A05C8C29683CA08A55B305F7 /* justify_right@2x.png */; }; + B9BD26819179215C0AC969AE03BFFDA3 /* bold@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 8547739AB6F0B6899AD699D4F5730F0F /* bold@2x.png */; }; + B9E4C5B75E206049F4515BA1E9BA08B5 /* rich_editor.html in Resources */ = {isa = PBXBuildFile; fileRef = 9F35EB6411280E4E78F0F27B1380B86B /* rich_editor.html */; }; + C067A62A65E250BAF1D29E0098260226 /* text_color.png in Resources */ = {isa = PBXBuildFile; fileRef = 0219519537EC2F7A9628D7842FB99031 /* text_color.png */; }; + C09C0541C4B1BDA77A34F4B53BED820C /* indent@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 3DDC43BA1F62715E413A8262D1F7B05E /* indent@2x.png */; }; + C960A60AE0FD30206AD492D4E1FB6986 /* outdent@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 7236873A2D0309B55DDF8FA16014A306 /* outdent@2x.png */; }; + CF5A0019B479EABA3FFE95DD558837BE /* RichEditorOptionItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = A4EB7AB07D3C21D9D8022EA3F436DB8D /* RichEditorOptionItem.swift */; }; + EBE6E445F06D25ED2D16B16AB091D3A8 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0BA92AEA4DC62E8E324D658E10A0FF15 /* Foundation.framework */; }; + EC9C7529FA88DF22ED97B0DDF03689E1 /* h2.png in Resources */ = {isa = PBXBuildFile; fileRef = 6B9418873E5925FD61330E53EE11996D /* h2.png */; }; + F7875C9BFF541AFBE2272030587F893A /* h3@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 529D4A23EF6501D2F09412FA17ADCB57 /* h3@2x.png */; }; + F838E4B6EAF5B2C2C2F0C7B603506C09 /* justify_left.png in Resources */ = {isa = PBXBuildFile; fileRef = 694D8EC01D7A67A9D5D6B9B1BCCDE9C7 /* justify_left.png */; }; + FA93351D0600BE3EA11325FD8A662F27 /* RichEditorView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06705AD7335E2B5BF47581BEE2690DFC /* RichEditorView.swift */; }; + FDAA3EAD94B8C9FACC6E9AF5618F5A9E /* indent.png in Resources */ = {isa = PBXBuildFile; fileRef = EAB307A435251B29B5A9B65B96FCEE85 /* indent.png */; }; + FEB11F2E9253FC333F21C41957953FF6 /* subscript.png in Resources */ = {isa = PBXBuildFile; fileRef = 8AF1B6079C5C9B0DB7FADC58B65335BE /* subscript.png */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ - 4D0FE16DD169F33BD4456FC8 /* PBXContainerItemProxy */ = { + 0C4FC5072E41EFA3A650851ED24A2EEB /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = FEAD181C8CA074C15B0CBCB6 /* Project object */; + containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; proxyType = 1; - remoteGlobalIDString = BBA99AEC4A997FBE6B158EDF; - remoteInfo = "Pods-RichEditorView"; + remoteGlobalIDString = 44402E9BECF9270B865D2D6E8182CA64; + remoteInfo = RichEditorView; }; /* End PBXContainerItemProxy section */ /* Begin PBXFileReference section */ - 00EF37E2952FDB7E9CE03B86 /* text_color@2x.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; path = "text_color@2x.png"; sourceTree = ""; }; - 010D34B78B397B510FFBBF3F /* bold@2x.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; path = "bold@2x.png"; sourceTree = ""; }; - 0638E6BB3038A7D5FEF340C1 /* justify_right@2x.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; path = "justify_right@2x.png"; sourceTree = ""; }; - 0C81CCDD9E290AC50714FF56 /* redo@2x.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; path = "redo@2x.png"; sourceTree = ""; }; - 0F70D77A0B95BF12507EFB5A /* Pods-RichEditorView.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "sourcecode.module-map"; path = "Pods-RichEditorView.modulemap"; sourceTree = ""; }; - 12D4E53A89B22F1BD09DF0C0 /* justify_left.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; path = justify_left.png; sourceTree = ""; }; - 140938D09A02DFF712877475 /* Pods-RichEditorView-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-RichEditorView-prefix.pch"; sourceTree = ""; }; - 19427BB57E3176D9133885BE /* strikethrough@2x.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; path = "strikethrough@2x.png"; sourceTree = ""; }; - 1EB4E3718511413D2D8D69A4 /* Podfile */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; - 206734FD303CF362426079F4 /* Pods.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Pods.debug.xcconfig; sourceTree = ""; }; - 33B318F17ABA97C25F2BE7D9 /* Pods-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-acknowledgements.plist"; sourceTree = ""; }; - 3537AFB1AB7BE2AEAE49F5FF /* subscript.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; path = subscript.png; sourceTree = ""; }; - 35A3BA947388CA75A239F8A3 /* normalize.css */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.css; path = normalize.css; sourceTree = ""; }; - 368C4062D9D816681269DF4A /* RichEditorView.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = RichEditorView.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 3ABCD2BA4423C9608209B3BE /* unordered_list@2x.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; path = "unordered_list@2x.png"; sourceTree = ""; }; - 4021886FBFBF67C689A7DA4F /* rich_editor.js */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.javascript; path = rich_editor.js; sourceTree = ""; }; - 433637F5B63BAAC4A1094B5E /* CJWWebView+HackishAccessoryHiding.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "CJWWebView+HackishAccessoryHiding.h"; sourceTree = ""; }; - 44C121921A78A8B768482B9D /* Pods-RichEditorView.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-RichEditorView.xcconfig"; sourceTree = ""; }; - 4509F2AB216C3012DAD9D0BE /* h2@2x.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; path = "h2@2x.png"; sourceTree = ""; }; - 45AF84741A09FC2DD0070D4C /* text_color.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; path = text_color.png; sourceTree = ""; }; - 4643A22A4BD7461103ADFE1E /* ordered_list.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; path = ordered_list.png; sourceTree = ""; }; - 46835B6B549D4E1BCB3423C7 /* clear.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; path = clear.png; sourceTree = ""; }; - 49699C9F422A15921531DEEB /* h2.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; path = h2.png; sourceTree = ""; }; - 4D98ECA96A24D95505594955 /* bg_color@2x.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; path = "bg_color@2x.png"; sourceTree = ""; }; - 50480F8F1DDC80CB88DA8837 /* outdent.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; path = outdent.png; sourceTree = ""; }; - 544E3794B5BEA9F4B9D1DD8F /* indent@2x.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; path = "indent@2x.png"; sourceTree = ""; }; - 548E17EBC8C5DBCA17A32EED /* Pods-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-umbrella.h"; sourceTree = ""; }; - 5ADFFB9101D2B734983702B0 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 5C156149120E02F09B927778 /* clear@2x.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; path = "clear@2x.png"; sourceTree = ""; }; - 5D0052683859B07D62A7EF77 /* Pods-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-acknowledgements.markdown"; sourceTree = ""; }; - 627883BEF278151730E55629 /* strikethrough.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; path = strikethrough.png; sourceTree = ""; }; - 629ED5D6905E42E031290948 /* underline.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; path = underline.png; sourceTree = ""; }; - 633243F02A8D803580784EC6 /* superscript.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; path = superscript.png; sourceTree = ""; }; - 66BAEA44FEA510C7D226F93D /* style.css */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.css; path = style.css; sourceTree = ""; }; - 692BD2EE9A13B5D111B94221 /* Pods-environment.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-environment.h"; sourceTree = ""; }; - 69C59D44323B760EBFDDCEEC /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.1.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; - 6EFF83D38E5C7C022EF80348 /* Pods.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Pods.release.xcconfig; sourceTree = ""; }; - 6F09A8954DE9BAF4B048C389 /* undo.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; path = undo.png; sourceTree = ""; }; - 706C7FAEE96385E16167389B /* italic@2x.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; path = "italic@2x.png"; sourceTree = ""; }; - 735DD13AE93F655950AFCA26 /* unordered_list.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; path = unordered_list.png; sourceTree = ""; }; - 772F1955F3B60B3BC96737C3 /* insert_link@2x.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; path = "insert_link@2x.png"; sourceTree = ""; }; - 7E82DB53BBEB978E2B953EC3 /* bold.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; path = bold.png; sourceTree = ""; }; - 83DA42E6AB080AFAE7050146 /* h5.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; path = h5.png; sourceTree = ""; }; - 8768BCD948AA0CD41431E16D /* h1.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; path = h1.png; sourceTree = ""; }; - 87D12DBBB80F5D150DF719F1 /* Pods-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-resources.sh"; sourceTree = ""; }; - 88628E630AAFE6D2C1672355 /* underline@2x.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; path = "underline@2x.png"; sourceTree = ""; }; - 8D4C59C058EE09297234A1A0 /* CJWWebView+HackishAccessoryHiding.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "CJWWebView+HackishAccessoryHiding.m"; sourceTree = ""; }; - 90B96DAD50463A60AF163D1C /* outdent@2x.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; path = "outdent@2x.png"; sourceTree = ""; }; - 9177FD89DCA3FA5640FE26A2 /* justify_right.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; path = justify_right.png; sourceTree = ""; }; - 91D334D59C6292E3E54FE396 /* subscript@2x.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; path = "subscript@2x.png"; sourceTree = ""; }; - 9697D7CE7649F513B3073F77 /* justify_center.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; path = justify_center.png; sourceTree = ""; }; - 972FA3D46F67AA2E58EF9C33 /* h3.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; path = h3.png; sourceTree = ""; }; - 99F220989EF24ABD4694C2D3 /* insert_image.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; path = insert_image.png; sourceTree = ""; }; - A426A5715651AD81359CBA5A /* h1@2x.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; path = "h1@2x.png"; sourceTree = ""; }; - A6BEF5EC4DBC616955365589 /* superscript@2x.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; path = "superscript@2x.png"; sourceTree = ""; }; - AFF7FFE0B8B5649E849A21D2 /* justify_center@2x.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; path = "justify_center@2x.png"; sourceTree = ""; }; - B2C67FBD99DD51C55AF39643 /* RichEditorToolbar.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RichEditorToolbar.swift; sourceTree = ""; }; - B5143FC01CDD2D670855ECA0 /* italic.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; path = italic.png; sourceTree = ""; }; - C370E4760C175CEADDC75DAD /* Pods-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-frameworks.sh"; sourceTree = ""; }; - C895DE2DA8C06C4F3FDFE06E /* rich_editor.html */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.html; path = rich_editor.html; sourceTree = ""; }; - C9327707A8515F328C7CCB03 /* justify_left@2x.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; path = "justify_left@2x.png"; sourceTree = ""; }; - C97174BB6F93E1BB66BF0329 /* Pods.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "sourcecode.module-map"; path = Pods.modulemap; sourceTree = ""; }; - C9A477EB8444D13C3B25C6E5 /* RichEditorOptionItem.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RichEditorOptionItem.swift; sourceTree = ""; }; - CA610F44DFBF7CB4441F0CB8 /* insert_image@2x.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; path = "insert_image@2x.png"; sourceTree = ""; }; - CC4DC5A9C0896924E0887F53 /* h5@2x.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; path = "h5@2x.png"; sourceTree = ""; }; - D06D0BB4C213C7F7920A4C92 /* Pods-RichEditorView-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-RichEditorView-umbrella.h"; sourceTree = ""; }; - D0E6EB420D33EB158BBFBE10 /* h4.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; path = h4.png; sourceTree = ""; }; - D3A50E6306185A50CF392903 /* h6@2x.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; path = "h6@2x.png"; sourceTree = ""; }; - D3BEC5EA0A0ABE5AB8C7028D /* h4@2x.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; path = "h4@2x.png"; sourceTree = ""; }; - D5C611B4D3E5A3271D68A5DE /* Pods-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-dummy.m"; sourceTree = ""; }; - DB22487393CACF864C4A62E4 /* bg_color.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; path = bg_color.png; sourceTree = ""; }; - E59C85E274A28673CA01B7A9 /* RichEditorView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RichEditorView.swift; sourceTree = ""; }; - E9F0D941AE0AA81F049EAC26 /* insert_link.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; path = insert_link.png; sourceTree = ""; }; - EA53CCF09116A32D9943D870 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - EB24A067502388A9ECE1BF6A /* h3@2x.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; path = "h3@2x.png"; sourceTree = ""; }; - EE21C86DFCB2F6FF34ADAA29 /* Pods-RichEditorView-Private.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-RichEditorView-Private.xcconfig"; sourceTree = ""; }; - F26B4268D69EA0624017597D /* Pods.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - F3815C1029A482E6212ECF40 /* h6.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; path = h6.png; sourceTree = ""; }; - F54282F0D039DE86BA022C89 /* Pods-RichEditorView-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-RichEditorView-dummy.m"; sourceTree = ""; }; - F6B1495AC180074BEEF03B85 /* ordered_list@2x.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; path = "ordered_list@2x.png"; sourceTree = ""; }; - F6F1B7AA64AA59EF54D64751 /* undo@2x.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; path = "undo@2x.png"; sourceTree = ""; }; - F7A4BB48603D740670A0EA8D /* indent.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; path = indent.png; sourceTree = ""; }; - FB8A44C5997BEA9207E92ACA /* redo.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; path = redo.png; sourceTree = ""; }; + 0219519537EC2F7A9628D7842FB99031 /* text_color.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; path = text_color.png; sourceTree = ""; }; + 06705AD7335E2B5BF47581BEE2690DFC /* RichEditorView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RichEditorView.swift; sourceTree = ""; }; + 08ED17F735A852EE682D96B9673F3E18 /* unordered_list@2x.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; path = "unordered_list@2x.png"; sourceTree = ""; }; + 0930D3C7089AA949FB4271754F044404 /* clear.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; path = clear.png; sourceTree = ""; }; + 0A1C3EFADCA0BE21C7EC390F898F1DB3 /* RichEditorView.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = RichEditorView.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 0BA92AEA4DC62E8E324D658E10A0FF15 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS8.3.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; + 13F662FB6A3FE2BD448A5BBADCFD78DD /* Pods.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Pods.release.xcconfig; sourceTree = ""; }; + 16AE4C353553839625FD4475F7F75C54 /* h1.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; path = h1.png; sourceTree = ""; }; + 174060CAA9621D67A8216F6ECB63580A /* CJWWebView+HackishAccessoryHiding.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "CJWWebView+HackishAccessoryHiding.h"; sourceTree = ""; }; + 18F974605371D8C35CF5C9B89B17F1CF /* RichEditorView-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "RichEditorView-prefix.pch"; sourceTree = ""; }; + 1BA8410E59334394C8A315AAEC0E99C2 /* RichEditorView-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "RichEditorView-dummy.m"; sourceTree = ""; }; + 2101882D166D075AC4D91771FFA16470 /* bg_color@2x.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; path = "bg_color@2x.png"; sourceTree = ""; }; + 24A5691741364DB8BAAE8246176FD301 /* insert_image.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; path = insert_image.png; sourceTree = ""; }; + 376916201D2BF14D09B580F2C50D5C36 /* Pods-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-dummy.m"; sourceTree = ""; }; + 38131B95BC8C649EFADFC5D11FAE30AA /* RichEditorView-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "RichEditorView-umbrella.h"; sourceTree = ""; }; + 3958C6C23B73B9CCA72ACB84BBBA2DBD /* h6.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; path = h6.png; sourceTree = ""; }; + 3B6D49626EE88F827BA3F6013B16FF4F /* text_color@2x.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; path = "text_color@2x.png"; sourceTree = ""; }; + 3DDC43BA1F62715E413A8262D1F7B05E /* indent@2x.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; path = "indent@2x.png"; sourceTree = ""; }; + 418EBD40A41947B591F5A678299EAA54 /* undo.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; path = undo.png; sourceTree = ""; }; + 44260AD4E3D32750F2A47735D8CD3DC9 /* strikethrough.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; path = strikethrough.png; sourceTree = ""; }; + 44C8A5766804637241E54FA598806438 /* italic@2x.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; path = "italic@2x.png"; sourceTree = ""; }; + 459C166FE4219891F9BACEAA264A67CB /* h2@2x.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; path = "h2@2x.png"; sourceTree = ""; }; + 470C8CA73D16C6733545D2039982499B /* h3.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; path = h3.png; sourceTree = ""; }; + 4ACD72E7575729612B2A86B0ECBDF665 /* justify_left@2x.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; path = "justify_left@2x.png"; sourceTree = ""; }; + 4AE64B441ED46912E35FEB3D810D4C1A /* Pods.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 529D4A23EF6501D2F09412FA17ADCB57 /* h3@2x.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; path = "h3@2x.png"; sourceTree = ""; }; + 57E9CD13AC9C4022EA759F38183414BB /* RichEditorToolbar.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RichEditorToolbar.swift; sourceTree = ""; }; + 593309912338CF82A72D40C3DE74D873 /* superscript.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; path = superscript.png; sourceTree = ""; }; + 59D01B24EC7A33D9ED9B2538F09F143C /* redo@2x.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; path = "redo@2x.png"; sourceTree = ""; }; + 5E61FB8344F98968C9A921B787C4C854 /* strikethrough@2x.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; path = "strikethrough@2x.png"; sourceTree = ""; }; + 6674A931DF7348F13B15C7BA53B1616D /* bold.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; path = bold.png; sourceTree = ""; }; + 694D8EC01D7A67A9D5D6B9B1BCCDE9C7 /* justify_left.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; path = justify_left.png; sourceTree = ""; }; + 6B9418873E5925FD61330E53EE11996D /* h2.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; path = h2.png; sourceTree = ""; }; + 7236873A2D0309B55DDF8FA16014A306 /* outdent@2x.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; path = "outdent@2x.png"; sourceTree = ""; }; + 72DECD6331C458A0497A5FA1397F0723 /* rich_editor.js */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.javascript; path = rich_editor.js; sourceTree = ""; }; + 79A9DEDC89FE8336BF5FEDAAF75BF7FC /* Pods.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "sourcecode.module-map"; path = Pods.modulemap; sourceTree = ""; }; + 79AA5CB16D3DF55B6C158413C503C955 /* underline.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; path = underline.png; sourceTree = ""; }; + 7CC846C653E24DA3914659FA2E38A482 /* Pods-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-umbrella.h"; sourceTree = ""; }; + 80BE8D7A908D371B3513CAF091A302FB /* normalize.css */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.css; path = normalize.css; sourceTree = ""; }; + 8547739AB6F0B6899AD699D4F5730F0F /* bold@2x.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; path = "bold@2x.png"; sourceTree = ""; }; + 86FA2D1B623DEA4897A8B1212547205A /* superscript@2x.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; path = "superscript@2x.png"; sourceTree = ""; }; + 87B213035BAC5F75386F62D3C75D2342 /* Pods-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-acknowledgements.plist"; sourceTree = ""; }; + 8AF1B6079C5C9B0DB7FADC58B65335BE /* subscript.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; path = subscript.png; sourceTree = ""; }; + 8B7C4F959A68D221CA4C9A428721AAB8 /* h4.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; path = h4.png; sourceTree = ""; }; + 91ED01ECA79B482D249E115D2D6143AF /* h5@2x.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; path = "h5@2x.png"; sourceTree = ""; }; + 94244EF11A421CE4AD0E371D15AF729F /* italic.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; path = italic.png; sourceTree = ""; }; + 943E8FF26E979303AC35BBC688E72655 /* style.css */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.css; path = style.css; sourceTree = ""; }; + 97DC161611E4AE12E28808EC6EA65E65 /* undo@2x.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; path = "undo@2x.png"; sourceTree = ""; }; + 9DA4B6109E30B17EA767C5741A01B129 /* h5.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; path = h5.png; sourceTree = ""; }; + 9F35EB6411280E4E78F0F27B1380B86B /* rich_editor.html */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.html; path = rich_editor.html; sourceTree = ""; }; + A0B66D6BC970C0B79CBCF2FAD9221197 /* insert_link@2x.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; path = "insert_link@2x.png"; sourceTree = ""; }; + A1B6EFF656DDAFDAA0DB6DFEC5902E99 /* clear@2x.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; path = "clear@2x.png"; sourceTree = ""; }; + A4EB7AB07D3C21D9D8022EA3F436DB8D /* RichEditorOptionItem.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RichEditorOptionItem.swift; sourceTree = ""; }; + A7A344DE903C1A95FCE2CD09C2D2AAED /* Pods.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Pods.debug.xcconfig; sourceTree = ""; }; + A7E6DE83B37D23C1C92CE1FD527EA9F2 /* insert_link.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; path = insert_link.png; sourceTree = ""; }; + B1D182324205BA9FE56AEA5875C68611 /* justify_center@2x.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; path = "justify_center@2x.png"; sourceTree = ""; }; + BA6428E9F66FD5A23C0A2E06ED26CD2F /* Podfile */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; + BB83B42D52690187B6EB2DA2151B4595 /* redo.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; path = redo.png; sourceTree = ""; }; + C4FB27C9B180E6B2F2CE80E0C85FD3DA /* bg_color.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; path = bg_color.png; sourceTree = ""; }; + C5C3F23004040B0EB783DC80F42F43CE /* h6@2x.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; path = "h6@2x.png"; sourceTree = ""; }; + C7870CF20AC00E80CB0D4E265A595925 /* RichEditorView.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "sourcecode.module-map"; path = RichEditorView.modulemap; sourceTree = ""; }; + C7B9089E6B2D72C2D0A9899263315797 /* justify_right.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; path = justify_right.png; sourceTree = ""; }; + C98B6E3532593681666E640201705870 /* RichEditorView-Private.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "RichEditorView-Private.xcconfig"; sourceTree = ""; }; + CBC0F7C552B739C909B650A0F42F7F38 /* Pods-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-resources.sh"; sourceTree = ""; }; + CC3ACFC2EFAA8643126D4EC92DA39F79 /* ordered_list.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; path = ordered_list.png; sourceTree = ""; }; + CC7F75E8ADFD7759DDA253EBB4382B2B /* justify_center.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; path = justify_center.png; sourceTree = ""; }; + CD06DEA628183B7DE5F6DC33C2331A6A /* insert_image@2x.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; path = "insert_image@2x.png"; sourceTree = ""; }; + D0405803033A2A777B8E4DFA0C1800ED /* Pods-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-acknowledgements.markdown"; sourceTree = ""; }; + D5DBB378AA84BFFF56EC4072F4EF5CB2 /* outdent.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; path = outdent.png; sourceTree = ""; }; + E3C965CA9D0AD913A9E37A12DF3BD1CF /* h1@2x.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; path = "h1@2x.png"; sourceTree = ""; }; + E45E9196ACAFB2B6EEF637F92255F694 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + E7F21354943D9F42A70697D5A5EF72E9 /* Pods-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-frameworks.sh"; sourceTree = ""; }; + E8446514FBAD26C0E18F24A5715AEF67 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + E8545190886F865C1C7C6E6BDBB70919 /* unordered_list.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; path = unordered_list.png; sourceTree = ""; }; + E9AE75540ED78897DF0D3081D0CBC139 /* subscript@2x.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; path = "subscript@2x.png"; sourceTree = ""; }; + EAB307A435251B29B5A9B65B96FCEE85 /* indent.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; path = indent.png; sourceTree = ""; }; + EBF46CDD1CC38F5C2B43D1A4A1DDC37F /* CJWWebView+HackishAccessoryHiding.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "CJWWebView+HackishAccessoryHiding.m"; sourceTree = ""; }; + F2C87E7DEC33A32A20171EBE102F9882 /* ordered_list@2x.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; path = "ordered_list@2x.png"; sourceTree = ""; }; + F6D2BC4D045674D6006BCAA798793BE7 /* underline@2x.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; path = "underline@2x.png"; sourceTree = ""; }; + F87E7F95A05C8C29683CA08A55B305F7 /* justify_right@2x.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; path = "justify_right@2x.png"; sourceTree = ""; }; + FB5710756CCF282E69C471B9F81B0D43 /* h4@2x.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; path = "h4@2x.png"; sourceTree = ""; }; + FCF154D4BB68319D49CC9D1B070BCCAD /* RichEditorView.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = RichEditorView.xcconfig; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ - 54C0787AA407B6A035011747 /* Frameworks */ = { + 3D055DBC8FF10D4E4E7EC9A1E2B7049F /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 4D0879ECD60B78BC4E56E540 /* Foundation.framework in Frameworks */, + EBE6E445F06D25ED2D16B16AB091D3A8 /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - B7CD97C19B8CF2D6235DE0C7 /* Frameworks */ = { + F5E2C99BC3AAF95BB03002A3AEA84E66 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - DAD4FCF1A302DF332DD663BF /* Foundation.framework in Frameworks */, + 8E4BD9B0FF181B163C0756801A74CD97 /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ - 04E54D7E3A47B1791FB0B127 /* RichEditorView */ = { + 29D0F9B95FA6527FADB26F0B9B326A64 /* Resources */ = { isa = PBXGroup; children = ( - 1B035F369D4DD3EFED87E245 /* Assets */, + C3BAEC58503229F9D0AD3C958388EA9E /* RichEditorView */, ); - path = RichEditorView; + name = Resources; sourceTree = ""; }; - 0DF57460032DB56AFC3F7A21 /* Resources */ = { + 4B30F62D3E920B72423BDCEFAC746A24 /* Development Pods */ = { isa = PBXGroup; children = ( - 04E54D7E3A47B1791FB0B127 /* RichEditorView */, + B80A613E8EC404FDFCE57D65BF79D083 /* RichEditorView */, ); - name = Resources; + name = "Development Pods"; sourceTree = ""; }; - 1B035F369D4DD3EFED87E245 /* Assets */ = { + 53F661C0CA7190D2CF05023FB33D61E4 /* iOS */ = { isa = PBXGroup; children = ( - F9E60348076D609131E63DCF /* editor */, - 7AB37A0C98006AB05DA361A6 /* icons */, + 0BA92AEA4DC62E8E324D658E10A0FF15 /* Foundation.framework */, ); - path = Assets; + name = iOS; sourceTree = ""; }; - 4A504D8C0F898111AEDA7FF0 /* Frameworks */ = { + 562758AB8288DA9309CEB0701591571E /* Assets */ = { isa = PBXGroup; children = ( - F4B19053632250BA6C9D76EE /* iOS */, + 78AF9061312E799CD456F73AB8DC3AC0 /* editor */, + D9331FED4CF34CBC5C638AA30F3C62DE /* icons */, ); - name = Frameworks; + path = Assets; sourceTree = ""; }; - 50966C9E6FF0589ED96FF4CB /* Classes */ = { + 6897B85FB60FBA111B6E8FE72A6F1E4A /* Classes */ = { isa = PBXGroup; children = ( - 433637F5B63BAAC4A1094B5E /* CJWWebView+HackishAccessoryHiding.h */, - 8D4C59C058EE09297234A1A0 /* CJWWebView+HackishAccessoryHiding.m */, - C9A477EB8444D13C3B25C6E5 /* RichEditorOptionItem.swift */, - B2C67FBD99DD51C55AF39643 /* RichEditorToolbar.swift */, - E59C85E274A28673CA01B7A9 /* RichEditorView.swift */, + 174060CAA9621D67A8216F6ECB63580A /* CJWWebView+HackishAccessoryHiding.h */, + EBF46CDD1CC38F5C2B43D1A4A1DDC37F /* CJWWebView+HackishAccessoryHiding.m */, + A4EB7AB07D3C21D9D8022EA3F436DB8D /* RichEditorOptionItem.swift */, + 57E9CD13AC9C4022EA759F38183414BB /* RichEditorToolbar.swift */, + 06705AD7335E2B5BF47581BEE2690DFC /* RichEditorView.swift */, ); path = Classes; sourceTree = ""; }; - 78C592D25400C48F1E83C2C9 = { + 7515F253DC7C48B4F0E23960F1B0F529 /* Support Files */ = { isa = PBXGroup; children = ( - 1EB4E3718511413D2D8D69A4 /* Podfile */, - B5DD88B11C817CB883D285A4 /* Development Pods */, - 4A504D8C0F898111AEDA7FF0 /* Frameworks */, - FF573AB74BB98CB1F429FBD7 /* Products */, - EB1ABD69E349F4E3B3032B0E /* Targets Support Files */, + E45E9196ACAFB2B6EEF637F92255F694 /* Info.plist */, + C7870CF20AC00E80CB0D4E265A595925 /* RichEditorView.modulemap */, + FCF154D4BB68319D49CC9D1B070BCCAD /* RichEditorView.xcconfig */, + C98B6E3532593681666E640201705870 /* RichEditorView-Private.xcconfig */, + 1BA8410E59334394C8A315AAEC0E99C2 /* RichEditorView-dummy.m */, + 18F974605371D8C35CF5C9B89B17F1CF /* RichEditorView-prefix.pch */, + 38131B95BC8C649EFADFC5D11FAE30AA /* RichEditorView-umbrella.h */, ); + name = "Support Files"; + path = "RichEditorViewSample/Pods/Target Support Files/RichEditorView"; sourceTree = ""; }; - 7AB37A0C98006AB05DA361A6 /* icons */ = { + 75D98FF52E597A11900E131B6C4E1ADA /* Pods */ = { isa = PBXGroup; children = ( - DB22487393CACF864C4A62E4 /* bg_color.png */, - 4D98ECA96A24D95505594955 /* bg_color@2x.png */, - 7E82DB53BBEB978E2B953EC3 /* bold.png */, - 010D34B78B397B510FFBBF3F /* bold@2x.png */, - 46835B6B549D4E1BCB3423C7 /* clear.png */, - 5C156149120E02F09B927778 /* clear@2x.png */, - 8768BCD948AA0CD41431E16D /* h1.png */, - A426A5715651AD81359CBA5A /* h1@2x.png */, - 49699C9F422A15921531DEEB /* h2.png */, - 4509F2AB216C3012DAD9D0BE /* h2@2x.png */, - 972FA3D46F67AA2E58EF9C33 /* h3.png */, - EB24A067502388A9ECE1BF6A /* h3@2x.png */, - D0E6EB420D33EB158BBFBE10 /* h4.png */, - D3BEC5EA0A0ABE5AB8C7028D /* h4@2x.png */, - 83DA42E6AB080AFAE7050146 /* h5.png */, - CC4DC5A9C0896924E0887F53 /* h5@2x.png */, - F3815C1029A482E6212ECF40 /* h6.png */, - D3A50E6306185A50CF392903 /* h6@2x.png */, - F7A4BB48603D740670A0EA8D /* indent.png */, - 544E3794B5BEA9F4B9D1DD8F /* indent@2x.png */, - 99F220989EF24ABD4694C2D3 /* insert_image.png */, - CA610F44DFBF7CB4441F0CB8 /* insert_image@2x.png */, - E9F0D941AE0AA81F049EAC26 /* insert_link.png */, - 772F1955F3B60B3BC96737C3 /* insert_link@2x.png */, - B5143FC01CDD2D670855ECA0 /* italic.png */, - 706C7FAEE96385E16167389B /* italic@2x.png */, - 9697D7CE7649F513B3073F77 /* justify_center.png */, - AFF7FFE0B8B5649E849A21D2 /* justify_center@2x.png */, - 12D4E53A89B22F1BD09DF0C0 /* justify_left.png */, - C9327707A8515F328C7CCB03 /* justify_left@2x.png */, - 9177FD89DCA3FA5640FE26A2 /* justify_right.png */, - 0638E6BB3038A7D5FEF340C1 /* justify_right@2x.png */, - 4643A22A4BD7461103ADFE1E /* ordered_list.png */, - F6B1495AC180074BEEF03B85 /* ordered_list@2x.png */, - 50480F8F1DDC80CB88DA8837 /* outdent.png */, - 90B96DAD50463A60AF163D1C /* outdent@2x.png */, - FB8A44C5997BEA9207E92ACA /* redo.png */, - 0C81CCDD9E290AC50714FF56 /* redo@2x.png */, - 627883BEF278151730E55629 /* strikethrough.png */, - 19427BB57E3176D9133885BE /* strikethrough@2x.png */, - 3537AFB1AB7BE2AEAE49F5FF /* subscript.png */, - 91D334D59C6292E3E54FE396 /* subscript@2x.png */, - 633243F02A8D803580784EC6 /* superscript.png */, - A6BEF5EC4DBC616955365589 /* superscript@2x.png */, - 45AF84741A09FC2DD0070D4C /* text_color.png */, - 00EF37E2952FDB7E9CE03B86 /* text_color@2x.png */, - 629ED5D6905E42E031290948 /* underline.png */, - 88628E630AAFE6D2C1672355 /* underline@2x.png */, - 6F09A8954DE9BAF4B048C389 /* undo.png */, - F6F1B7AA64AA59EF54D64751 /* undo@2x.png */, - 735DD13AE93F655950AFCA26 /* unordered_list.png */, - 3ABCD2BA4423C9608209B3BE /* unordered_list@2x.png */, + E8446514FBAD26C0E18F24A5715AEF67 /* Info.plist */, + 79A9DEDC89FE8336BF5FEDAAF75BF7FC /* Pods.modulemap */, + D0405803033A2A777B8E4DFA0C1800ED /* Pods-acknowledgements.markdown */, + 87B213035BAC5F75386F62D3C75D2342 /* Pods-acknowledgements.plist */, + 376916201D2BF14D09B580F2C50D5C36 /* Pods-dummy.m */, + E7F21354943D9F42A70697D5A5EF72E9 /* Pods-frameworks.sh */, + CBC0F7C552B739C909B650A0F42F7F38 /* Pods-resources.sh */, + 7CC846C653E24DA3914659FA2E38A482 /* Pods-umbrella.h */, + A7A344DE903C1A95FCE2CD09C2D2AAED /* Pods.debug.xcconfig */, + 13F662FB6A3FE2BD448A5BBADCFD78DD /* Pods.release.xcconfig */, ); - path = icons; + name = Pods; + path = "Target Support Files/Pods"; sourceTree = ""; }; - B5DD88B11C817CB883D285A4 /* Development Pods */ = { + 78AF9061312E799CD456F73AB8DC3AC0 /* editor */ = { isa = PBXGroup; children = ( - F5E0A2CFE6E2E59FA093A029 /* RichEditorView */, + 80BE8D7A908D371B3513CAF091A302FB /* normalize.css */, + 9F35EB6411280E4E78F0F27B1380B86B /* rich_editor.html */, + 72DECD6331C458A0497A5FA1397F0723 /* rich_editor.js */, + 943E8FF26E979303AC35BBC688E72655 /* style.css */, ); - name = "Development Pods"; + path = editor; sourceTree = ""; }; - B6BFFAE53645918C43503353 /* Pods */ = { + 7DB346D0F39D3F0E887471402A8071AB = { isa = PBXGroup; children = ( - EA53CCF09116A32D9943D870 /* Info.plist */, - C97174BB6F93E1BB66BF0329 /* Pods.modulemap */, - 5D0052683859B07D62A7EF77 /* Pods-acknowledgements.markdown */, - 33B318F17ABA97C25F2BE7D9 /* Pods-acknowledgements.plist */, - D5C611B4D3E5A3271D68A5DE /* Pods-dummy.m */, - 692BD2EE9A13B5D111B94221 /* Pods-environment.h */, - C370E4760C175CEADDC75DAD /* Pods-frameworks.sh */, - 87D12DBBB80F5D150DF719F1 /* Pods-resources.sh */, - 548E17EBC8C5DBCA17A32EED /* Pods-umbrella.h */, - 206734FD303CF362426079F4 /* Pods.debug.xcconfig */, - 6EFF83D38E5C7C022EF80348 /* Pods.release.xcconfig */, + BA6428E9F66FD5A23C0A2E06ED26CD2F /* Podfile */, + 4B30F62D3E920B72423BDCEFAC746A24 /* Development Pods */, + BC3CA7F9E30CC8F7E2DD044DD34432FC /* Frameworks */, + CCA510CFBEA2D207524CDA0D73C3B561 /* Products */, + B7B80995527643776607AFFA75B91E24 /* Targets Support Files */, ); - name = Pods; - path = "Target Support Files/Pods"; sourceTree = ""; }; - E1527EE62F6E356101618FF7 /* Support Files */ = { + B7B80995527643776607AFFA75B91E24 /* Targets Support Files */ = { isa = PBXGroup; children = ( - 5ADFFB9101D2B734983702B0 /* Info.plist */, - 0F70D77A0B95BF12507EFB5A /* Pods-RichEditorView.modulemap */, - 44C121921A78A8B768482B9D /* Pods-RichEditorView.xcconfig */, - EE21C86DFCB2F6FF34ADAA29 /* Pods-RichEditorView-Private.xcconfig */, - F54282F0D039DE86BA022C89 /* Pods-RichEditorView-dummy.m */, - 140938D09A02DFF712877475 /* Pods-RichEditorView-prefix.pch */, - D06D0BB4C213C7F7920A4C92 /* Pods-RichEditorView-umbrella.h */, + 75D98FF52E597A11900E131B6C4E1ADA /* Pods */, ); - name = "Support Files"; - path = "RichEditorViewSample/Pods/Target Support Files/Pods-RichEditorView"; + name = "Targets Support Files"; sourceTree = ""; }; - E3ACF23E64F1E75125971D70 /* RichEditorView */ = { + B80A613E8EC404FDFCE57D65BF79D083 /* RichEditorView */ = { isa = PBXGroup; children = ( - 50966C9E6FF0589ED96FF4CB /* Classes */, + 29D0F9B95FA6527FADB26F0B9B326A64 /* Resources */, + D6F2F7A1AA85F30EB3A57C7426ADE7C2 /* RichEditorView */, + 7515F253DC7C48B4F0E23960F1B0F529 /* Support Files */, ); - path = RichEditorView; + name = RichEditorView; + path = ../..; sourceTree = ""; }; - EB1ABD69E349F4E3B3032B0E /* Targets Support Files */ = { + BC3CA7F9E30CC8F7E2DD044DD34432FC /* Frameworks */ = { isa = PBXGroup; children = ( - B6BFFAE53645918C43503353 /* Pods */, + 53F661C0CA7190D2CF05023FB33D61E4 /* iOS */, ); - name = "Targets Support Files"; + name = Frameworks; sourceTree = ""; }; - F4B19053632250BA6C9D76EE /* iOS */ = { + C3BAEC58503229F9D0AD3C958388EA9E /* RichEditorView */ = { isa = PBXGroup; children = ( - 69C59D44323B760EBFDDCEEC /* Foundation.framework */, + 562758AB8288DA9309CEB0701591571E /* Assets */, ); - name = iOS; + path = RichEditorView; sourceTree = ""; }; - F5E0A2CFE6E2E59FA093A029 /* RichEditorView */ = { + CCA510CFBEA2D207524CDA0D73C3B561 /* Products */ = { isa = PBXGroup; children = ( - 0DF57460032DB56AFC3F7A21 /* Resources */, - E3ACF23E64F1E75125971D70 /* RichEditorView */, - E1527EE62F6E356101618FF7 /* Support Files */, + 4AE64B441ED46912E35FEB3D810D4C1A /* Pods.framework */, + 0A1C3EFADCA0BE21C7EC390F898F1DB3 /* RichEditorView.framework */, ); - name = RichEditorView; - path = ../..; + name = Products; sourceTree = ""; }; - F9E60348076D609131E63DCF /* editor */ = { + D6F2F7A1AA85F30EB3A57C7426ADE7C2 /* RichEditorView */ = { isa = PBXGroup; children = ( - 35A3BA947388CA75A239F8A3 /* normalize.css */, - C895DE2DA8C06C4F3FDFE06E /* rich_editor.html */, - 4021886FBFBF67C689A7DA4F /* rich_editor.js */, - 66BAEA44FEA510C7D226F93D /* style.css */, + 6897B85FB60FBA111B6E8FE72A6F1E4A /* Classes */, ); - path = editor; + path = RichEditorView; sourceTree = ""; }; - FF573AB74BB98CB1F429FBD7 /* Products */ = { + D9331FED4CF34CBC5C638AA30F3C62DE /* icons */ = { isa = PBXGroup; children = ( - F26B4268D69EA0624017597D /* Pods.framework */, - 368C4062D9D816681269DF4A /* RichEditorView.framework */, + C4FB27C9B180E6B2F2CE80E0C85FD3DA /* bg_color.png */, + 2101882D166D075AC4D91771FFA16470 /* bg_color@2x.png */, + 6674A931DF7348F13B15C7BA53B1616D /* bold.png */, + 8547739AB6F0B6899AD699D4F5730F0F /* bold@2x.png */, + 0930D3C7089AA949FB4271754F044404 /* clear.png */, + A1B6EFF656DDAFDAA0DB6DFEC5902E99 /* clear@2x.png */, + 16AE4C353553839625FD4475F7F75C54 /* h1.png */, + E3C965CA9D0AD913A9E37A12DF3BD1CF /* h1@2x.png */, + 6B9418873E5925FD61330E53EE11996D /* h2.png */, + 459C166FE4219891F9BACEAA264A67CB /* h2@2x.png */, + 470C8CA73D16C6733545D2039982499B /* h3.png */, + 529D4A23EF6501D2F09412FA17ADCB57 /* h3@2x.png */, + 8B7C4F959A68D221CA4C9A428721AAB8 /* h4.png */, + FB5710756CCF282E69C471B9F81B0D43 /* h4@2x.png */, + 9DA4B6109E30B17EA767C5741A01B129 /* h5.png */, + 91ED01ECA79B482D249E115D2D6143AF /* h5@2x.png */, + 3958C6C23B73B9CCA72ACB84BBBA2DBD /* h6.png */, + C5C3F23004040B0EB783DC80F42F43CE /* h6@2x.png */, + EAB307A435251B29B5A9B65B96FCEE85 /* indent.png */, + 3DDC43BA1F62715E413A8262D1F7B05E /* indent@2x.png */, + 24A5691741364DB8BAAE8246176FD301 /* insert_image.png */, + CD06DEA628183B7DE5F6DC33C2331A6A /* insert_image@2x.png */, + A7E6DE83B37D23C1C92CE1FD527EA9F2 /* insert_link.png */, + A0B66D6BC970C0B79CBCF2FAD9221197 /* insert_link@2x.png */, + 94244EF11A421CE4AD0E371D15AF729F /* italic.png */, + 44C8A5766804637241E54FA598806438 /* italic@2x.png */, + CC7F75E8ADFD7759DDA253EBB4382B2B /* justify_center.png */, + B1D182324205BA9FE56AEA5875C68611 /* justify_center@2x.png */, + 694D8EC01D7A67A9D5D6B9B1BCCDE9C7 /* justify_left.png */, + 4ACD72E7575729612B2A86B0ECBDF665 /* justify_left@2x.png */, + C7B9089E6B2D72C2D0A9899263315797 /* justify_right.png */, + F87E7F95A05C8C29683CA08A55B305F7 /* justify_right@2x.png */, + CC3ACFC2EFAA8643126D4EC92DA39F79 /* ordered_list.png */, + F2C87E7DEC33A32A20171EBE102F9882 /* ordered_list@2x.png */, + D5DBB378AA84BFFF56EC4072F4EF5CB2 /* outdent.png */, + 7236873A2D0309B55DDF8FA16014A306 /* outdent@2x.png */, + BB83B42D52690187B6EB2DA2151B4595 /* redo.png */, + 59D01B24EC7A33D9ED9B2538F09F143C /* redo@2x.png */, + 44260AD4E3D32750F2A47735D8CD3DC9 /* strikethrough.png */, + 5E61FB8344F98968C9A921B787C4C854 /* strikethrough@2x.png */, + 8AF1B6079C5C9B0DB7FADC58B65335BE /* subscript.png */, + E9AE75540ED78897DF0D3081D0CBC139 /* subscript@2x.png */, + 593309912338CF82A72D40C3DE74D873 /* superscript.png */, + 86FA2D1B623DEA4897A8B1212547205A /* superscript@2x.png */, + 0219519537EC2F7A9628D7842FB99031 /* text_color.png */, + 3B6D49626EE88F827BA3F6013B16FF4F /* text_color@2x.png */, + 79AA5CB16D3DF55B6C158413C503C955 /* underline.png */, + F6D2BC4D045674D6006BCAA798793BE7 /* underline@2x.png */, + 418EBD40A41947B591F5A678299EAA54 /* undo.png */, + 97DC161611E4AE12E28808EC6EA65E65 /* undo@2x.png */, + E8545190886F865C1C7C6E6BDBB70919 /* unordered_list.png */, + 08ED17F735A852EE682D96B9673F3E18 /* unordered_list@2x.png */, ); - name = Products; + path = icons; sourceTree = ""; }; /* End PBXGroup section */ /* Begin PBXHeadersBuildPhase section */ - 41D55D1ADD527584F17FAB91 /* Headers */ = { + ED70F83F9B379ACF2902B787841BE1FC /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - C8A3FD6A56491037B8FE58D7 /* CJWWebView+HackishAccessoryHiding.h in Headers */, - 457FCD326D0640D3C6AFEF46 /* Pods-RichEditorView-umbrella.h in Headers */, + 7467A8AAA1F476C133D92B10113CA04B /* Pods-umbrella.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; - A572432281FDA5DC130C975B /* Headers */ = { + F6281D8569B213B2DE893904D1003D02 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - A6A31EF406F255B95E254B5D /* Pods-umbrella.h in Headers */, + A0AFC7AF87CC462319FDF468EC18611B /* CJWWebView+HackishAccessoryHiding.h in Headers */, + 7E824D7BA50A4BD21ACA139EE47105CC /* RichEditorView-umbrella.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXHeadersBuildPhase section */ /* Begin PBXNativeTarget section */ - 8CD4B88C31FA2F14EE668B31 /* Pods */ = { + 44402E9BECF9270B865D2D6E8182CA64 /* RichEditorView */ = { isa = PBXNativeTarget; - buildConfigurationList = 048B4F97BED31BCE51F87320 /* Build configuration list for PBXNativeTarget "Pods" */; + buildConfigurationList = 16AA1A42C28B4492F6EAF8223559C284 /* Build configuration list for PBXNativeTarget "RichEditorView" */; buildPhases = ( - 7644184885C6D2962198F253 /* Sources */, - 54C0787AA407B6A035011747 /* Frameworks */, - A572432281FDA5DC130C975B /* Headers */, + E0FC9E78A9E86F9D604F449BF2603C7C /* Sources */, + F5E2C99BC3AAF95BB03002A3AEA84E66 /* Frameworks */, + F6281D8569B213B2DE893904D1003D02 /* Headers */, + 188C51A15C1F73A9F284DF123D615697 /* Resources */, ); buildRules = ( ); dependencies = ( - D7522F8A9AE55CEF47A1580C /* PBXTargetDependency */, ); - name = Pods; - productName = Pods; - productReference = F26B4268D69EA0624017597D /* Pods.framework */; + name = RichEditorView; + productName = RichEditorView; + productReference = 0A1C3EFADCA0BE21C7EC390F898F1DB3 /* RichEditorView.framework */; productType = "com.apple.product-type.framework"; }; - BBA99AEC4A997FBE6B158EDF /* Pods-RichEditorView */ = { + 595146073C95B1DA215AF941CFF70569 /* Pods */ = { isa = PBXNativeTarget; - buildConfigurationList = 510F1CD0B4233401C1BA6F2B /* Build configuration list for PBXNativeTarget "Pods-RichEditorView" */; + buildConfigurationList = 8F9A243A69C2B625E0DEDB86C5153E15 /* Build configuration list for PBXNativeTarget "Pods" */; buildPhases = ( - E71E3A41AB383C195993BD86 /* Sources */, - B7CD97C19B8CF2D6235DE0C7 /* Frameworks */, - 41D55D1ADD527584F17FAB91 /* Headers */, - 85C4AB7119092CF46C591454 /* Resources */, + 46D8753D5254B6D6A7C8BCDEB640E344 /* Sources */, + 3D055DBC8FF10D4E4E7EC9A1E2B7049F /* Frameworks */, + ED70F83F9B379ACF2902B787841BE1FC /* Headers */, ); buildRules = ( ); dependencies = ( + F3790D583624DD38A27129061320C08B /* PBXTargetDependency */, ); - name = "Pods-RichEditorView"; - productName = "Pods-RichEditorView"; - productReference = 368C4062D9D816681269DF4A /* RichEditorView.framework */; + name = Pods; + productName = Pods; + productReference = 4AE64B441ED46912E35FEB3D810D4C1A /* Pods.framework */; productType = "com.apple.product-type.framework"; }; /* End PBXNativeTarget section */ /* Begin PBXProject section */ - FEAD181C8CA074C15B0CBCB6 /* Project object */ = { + D41D8CD98F00B204E9800998ECF8427E /* Project object */ = { isa = PBXProject; attributes = { LastSwiftUpdateCheck = 0700; - LastUpgradeCheck = 0510; + LastUpgradeCheck = 0700; }; - buildConfigurationList = 9A776911EDB4F4FCF1DB3EB0 /* Build configuration list for PBXProject "Pods" */; + buildConfigurationList = 2D8E8EC45A3A1A1D94AE762CB5028504 /* Build configuration list for PBXProject "Pods" */; compatibilityVersion = "Xcode 3.2"; developmentRegion = English; hasScannedForEncodings = 0; knownRegions = ( en, ); - mainGroup = 78C592D25400C48F1E83C2C9; - productRefGroup = FF573AB74BB98CB1F429FBD7 /* Products */; + mainGroup = 7DB346D0F39D3F0E887471402A8071AB; + productRefGroup = CCA510CFBEA2D207524CDA0D73C3B561 /* Products */; projectDirPath = ""; projectRoot = ""; targets = ( - 8CD4B88C31FA2F14EE668B31 /* Pods */, - BBA99AEC4A997FBE6B158EDF /* Pods-RichEditorView */, + 595146073C95B1DA215AF941CFF70569 /* Pods */, + 44402E9BECF9270B865D2D6E8182CA64 /* RichEditorView */, ); }; /* End PBXProject section */ /* Begin PBXResourcesBuildPhase section */ - 85C4AB7119092CF46C591454 /* Resources */ = { + 188C51A15C1F73A9F284DF123D615697 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - 2BCB0A16C0BB018C9F547DBF /* bg_color.png in Resources */, - 4E2F1BBA274F84B66D1AA978 /* bg_color@2x.png in Resources */, - 9D13B28035AB3945F6AC070A /* bold.png in Resources */, - DED077160BE7F529C7E669CE /* bold@2x.png in Resources */, - 78FC370CB8308B4B73539AF3 /* clear.png in Resources */, - BDDC5458C9120F30E668967B /* clear@2x.png in Resources */, - 4B68F50964D4DCEBF5A97CBB /* h1.png in Resources */, - F396E2BC31C15C145B0B528C /* h1@2x.png in Resources */, - 9AECFE4C5B8A877B48F1271E /* h2.png in Resources */, - 02499AA1195BAA6FF8851C89 /* h2@2x.png in Resources */, - C98DCFBAD1C2953722532413 /* h3.png in Resources */, - 962C21FA0A9889F91AD6E59F /* h3@2x.png in Resources */, - 34356500D81FA7410B42D3BE /* h4.png in Resources */, - B7DB7DC2DDEDAB918E65CB0E /* h4@2x.png in Resources */, - 50AAAA4C80AAD5DAB2CA09DA /* h5.png in Resources */, - 353FE026FA6A45650151AA45 /* h5@2x.png in Resources */, - 0BE73198D6C581F95968FA0F /* h6.png in Resources */, - 07F4FA2B26BC4CBFA11326F8 /* h6@2x.png in Resources */, - 5C015C796E239516F7BDF362 /* indent.png in Resources */, - 2D22CCE9876DEF32F432324A /* indent@2x.png in Resources */, - 64A4198FBE2E766263476F58 /* insert_image.png in Resources */, - 0C29F178FDC2077F5F61C8BD /* insert_image@2x.png in Resources */, - 562E1D910CCAB194D7A3E1BF /* insert_link.png in Resources */, - 0D24CBC20CB0FA1BEF86F915 /* insert_link@2x.png in Resources */, - 5E2310DD9250B08B9E4442BC /* italic.png in Resources */, - 66F5DC19FC6377A0AEF0B7A9 /* italic@2x.png in Resources */, - 003BC641E332998192435123 /* justify_center.png in Resources */, - D228659B9DEDD0E44E023776 /* justify_center@2x.png in Resources */, - 3631DB42EAB14287F5DF0C97 /* justify_left.png in Resources */, - 489606632B872E6AF9384BAD /* justify_left@2x.png in Resources */, - 90101817591F4D8A41A3BFDF /* justify_right.png in Resources */, - E28FD0BDCD29791A764A0B17 /* justify_right@2x.png in Resources */, - 62B5A848B483813C20736B2A /* normalize.css in Resources */, - 6E876E2337DC69D155730EF4 /* ordered_list.png in Resources */, - D6E80380BB4AA35FD43974F5 /* ordered_list@2x.png in Resources */, - 81983161C0F09E28BEF753E3 /* outdent.png in Resources */, - 85E1184AAE1A4986D659DBDF /* outdent@2x.png in Resources */, - DA297A6DD854EB271729D3EE /* redo.png in Resources */, - DEB81B22E8BFFD8B9124C35D /* redo@2x.png in Resources */, - B6C2090E7737FD84BA14E932 /* rich_editor.html in Resources */, - 1F27E3193C7A98785CC27491 /* rich_editor.js in Resources */, - D14F79BFEEE3253F7FAC4837 /* strikethrough.png in Resources */, - B005C18EAB219FC206DBF4FE /* strikethrough@2x.png in Resources */, - FE616862A2B4C88C3F173C18 /* style.css in Resources */, - 31AC69501473C4C2D1D301E5 /* subscript.png in Resources */, - B964C2C3D2EE8AB1B8B0A475 /* subscript@2x.png in Resources */, - 48B26547E3060C0F5EC88D9A /* superscript.png in Resources */, - 860F0DB8225FBC9B28E6F3DF /* superscript@2x.png in Resources */, - 60886F0C0F34346E03F44BAE /* text_color.png in Resources */, - C519BDDD8AEFD8B61A25FCBA /* text_color@2x.png in Resources */, - 3C274942C6B5A7C00C221998 /* underline.png in Resources */, - 777CE4B546616CF6A4649FEE /* underline@2x.png in Resources */, - 99885FB9BB05A449A8EFA67D /* undo.png in Resources */, - 119C123085569AED4CAF8AAF /* undo@2x.png in Resources */, - 526FFEA4B0A617F5089CB315 /* unordered_list.png in Resources */, - 3C42391413623CE11DA5BC2D /* unordered_list@2x.png in Resources */, + 0A7CB92D9B60EBFEBA1433A61383CD51 /* bg_color.png in Resources */, + 5742131BB14FC41B1F4ECD6A8736D0FC /* bg_color@2x.png in Resources */, + 1B786D50F000C7E956E9FC442B2804B0 /* bold.png in Resources */, + B9BD26819179215C0AC969AE03BFFDA3 /* bold@2x.png in Resources */, + 46311FB01112E3E963E796C213FC062A /* clear.png in Resources */, + 5F2EB8C17FB5735BB38915D25E1EE494 /* clear@2x.png in Resources */, + 8F21D7DF1CF54D0A4671337355ABC388 /* h1.png in Resources */, + 588B97924F15952BF6EF21352AE2C37C /* h1@2x.png in Resources */, + EC9C7529FA88DF22ED97B0DDF03689E1 /* h2.png in Resources */, + AA6182C01A363AFA6AE6BE73CD7EF86B /* h2@2x.png in Resources */, + 4AC6911F5F539E09971686D391A3AA67 /* h3.png in Resources */, + F7875C9BFF541AFBE2272030587F893A /* h3@2x.png in Resources */, + 0C00E419DD8A6297A4493EB925141917 /* h4.png in Resources */, + 73E66254CA7CE23C0CF95B536EE88117 /* h4@2x.png in Resources */, + 9F1C146C52902690B3E0AEFB85A2D588 /* h5.png in Resources */, + 62266FD79B4C708D4387A6C94839039B /* h5@2x.png in Resources */, + 55FC8D79F0AD464252DFF12DD278CB7C /* h6.png in Resources */, + 0B474D05FFCE68274048ED499D5535BA /* h6@2x.png in Resources */, + FDAA3EAD94B8C9FACC6E9AF5618F5A9E /* indent.png in Resources */, + C09C0541C4B1BDA77A34F4B53BED820C /* indent@2x.png in Resources */, + 1AFF959304B7A5099F610EB3FB67831D /* insert_image.png in Resources */, + 0FFDA500124CDFC07856BB2DE23A8C7E /* insert_image@2x.png in Resources */, + 605C95508FB754789A8246DD77A04675 /* insert_link.png in Resources */, + 5FD0619418D1B3BC8F44D5B15B331A4F /* insert_link@2x.png in Resources */, + 6539961F512FB9861A5570AB07B2D71E /* italic.png in Resources */, + A387D60CE6D75BD77775A1EEC3AEA28C /* italic@2x.png in Resources */, + 8B1DBA8290010CE6C16C05384B900484 /* justify_center.png in Resources */, + 7452A7CF2633C9158B0FB6D2B2A502F1 /* justify_center@2x.png in Resources */, + F838E4B6EAF5B2C2C2F0C7B603506C09 /* justify_left.png in Resources */, + 4188CD27D63A34D60D6E1D65205EFCD4 /* justify_left@2x.png in Resources */, + 7AFA14E4DC3C058295AA130A5B907FBF /* justify_right.png in Resources */, + B39703F05FB7CBE2B28A8CFA1B4862BE /* justify_right@2x.png in Resources */, + B166AAD8F6BB060D0E186C8A2EC17787 /* normalize.css in Resources */, + 44F03BC39ACA957C6DEC68A67CCC8F26 /* ordered_list.png in Resources */, + 0AD59E3BC21974B6CEE63A4561CC95DB /* ordered_list@2x.png in Resources */, + 18D13AE87E78AB2A6B9CF00C22C8089A /* outdent.png in Resources */, + C960A60AE0FD30206AD492D4E1FB6986 /* outdent@2x.png in Resources */, + 98D5C8EB14B2927894D58E0965D4155F /* redo.png in Resources */, + 19F9DA4E5BBFD6161EA0557352232162 /* redo@2x.png in Resources */, + B9E4C5B75E206049F4515BA1E9BA08B5 /* rich_editor.html in Resources */, + 11C4DFE6640862E24DFCA138A396AA49 /* rich_editor.js in Resources */, + 93AA7BF8E427EE6A604FCC7850CA5E0C /* strikethrough.png in Resources */, + 89C367678FDAA632D2DF450E0E795142 /* strikethrough@2x.png in Resources */, + 6039FD657DB0EB0AFD430A549721D239 /* style.css in Resources */, + FEB11F2E9253FC333F21C41957953FF6 /* subscript.png in Resources */, + 83793995E51450EFAB82570D5BE78AC6 /* subscript@2x.png in Resources */, + 9493F1151B669AD803836D1B0BD07C3E /* superscript.png in Resources */, + 360FDD8A355C7C08F3E64217EC1651A6 /* superscript@2x.png in Resources */, + C067A62A65E250BAF1D29E0098260226 /* text_color.png in Resources */, + 9FC5404AA0995873C4B6148E67555583 /* text_color@2x.png in Resources */, + 365A08EF770393A7F3D7BD4E7332082D /* underline.png in Resources */, + 880C359B267137F21BB3EC3D694F9B66 /* underline@2x.png in Resources */, + 4451B3E8C834A0BF5287C189C25E3AE7 /* undo.png in Resources */, + 81FBC0B301268A4E956F86A515646056 /* undo@2x.png in Resources */, + 398D58053A40859559DDD91BC561B5E9 /* unordered_list.png in Resources */, + 7FD524B6FF99865B6E3B5BBBB91E619A /* unordered_list@2x.png in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXResourcesBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ - 7644184885C6D2962198F253 /* Sources */ = { + 46D8753D5254B6D6A7C8BCDEB640E344 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - AADF77811646BB276DE7BED0 /* Pods-dummy.m in Sources */, + 958C6C82F9AAE08ED9A79892D74373A4 /* Pods-dummy.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - E71E3A41AB383C195993BD86 /* Sources */ = { + E0FC9E78A9E86F9D604F449BF2603C7C /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - D3480F8D93862F1CAD7DD829 /* CJWWebView+HackishAccessoryHiding.m in Sources */, - 7F300EDAD743AF81BD91061E /* Pods-RichEditorView-dummy.m in Sources */, - 6B4A024CEDC6FCD104C596F3 /* RichEditorOptionItem.swift in Sources */, - 2BFCF607219FE7BAD400C4C5 /* RichEditorToolbar.swift in Sources */, - 10B159F3AAAF46AB79B46E6B /* RichEditorView.swift in Sources */, + B130B708173111CC01E6D26069DC2C0A /* CJWWebView+HackishAccessoryHiding.m in Sources */, + CF5A0019B479EABA3FFE95DD558837BE /* RichEditorOptionItem.swift in Sources */, + 4942E9189E704E3BB0D1266E8EE89FD6 /* RichEditorToolbar.swift in Sources */, + AB1DA315DEB0172A1EB01725DC4A62E0 /* RichEditorView-dummy.m in Sources */, + FA93351D0600BE3EA11325FD8A662F27 /* RichEditorView.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ - D7522F8A9AE55CEF47A1580C /* PBXTargetDependency */ = { + F3790D583624DD38A27129061320C08B /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = "Pods-RichEditorView"; - target = BBA99AEC4A997FBE6B158EDF /* Pods-RichEditorView */; - targetProxy = 4D0FE16DD169F33BD4456FC8 /* PBXContainerItemProxy */; + name = RichEditorView; + target = 44402E9BECF9270B865D2D6E8182CA64 /* RichEditorView */; + targetProxy = 0C4FC5072E41EFA3A650851ED24A2EEB /* PBXContainerItemProxy */; }; /* End PBXTargetDependency section */ /* Begin XCBuildConfiguration section */ - 1E6886AD9A7EFB04B5C08E57 /* Release */ = { + 3A238F3220518398EFF208FF7B595F22 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = EE21C86DFCB2F6FF34ADAA29 /* Pods-RichEditorView-Private.xcconfig */; + baseConfigurationReference = C98B6E3532593681666E640201705870 /* RichEditorView-Private.xcconfig */; buildSettings = { "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - CURRENT_PROJECT_VERSION = 1; + CURRENT_PROJECT_VERSION = 1.2.0; DEFINES_MODULE = YES; DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; + DYLIB_CURRENT_VERSION = "$(CURRENT_PROJECT_VERSION)"; DYLIB_INSTALL_NAME_BASE = "@rpath"; ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_PREFIX_HEADER = "Target Support Files/Pods-RichEditorView/Pods-RichEditorView-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/Pods-RichEditorView/Info.plist"; + GCC_PREFIX_HEADER = "Target Support Files/RichEditorView/RichEditorView-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/RichEditorView/Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 8.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MODULEMAP_FILE = "Target Support Files/Pods-RichEditorView/Pods-RichEditorView.modulemap"; - MTL_ENABLE_DEBUG_INFO = NO; + MODULEMAP_FILE = "Target Support Files/RichEditorView/RichEditorView.modulemap"; + MTL_ENABLE_DEBUG_INFO = YES; PRODUCT_NAME = RichEditorView; SDKROOT = iphoneos; SKIP_INSTALL = YES; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; TARGETED_DEVICE_FAMILY = "1,2"; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; - name = Release; + name = Debug; }; - 3944599D9789E79179FE24F7 /* Debug */ = { + 4E452E4EA4291A59B6167CEAEC440CC4 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = EE21C86DFCB2F6FF34ADAA29 /* Pods-RichEditorView-Private.xcconfig */; + baseConfigurationReference = C98B6E3532593681666E640201705870 /* RichEditorView-Private.xcconfig */; buildSettings = { "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - CURRENT_PROJECT_VERSION = 1; + CURRENT_PROJECT_VERSION = 1.2.0; DEFINES_MODULE = YES; DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; + DYLIB_CURRENT_VERSION = "$(CURRENT_PROJECT_VERSION)"; DYLIB_INSTALL_NAME_BASE = "@rpath"; ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_PREFIX_HEADER = "Target Support Files/Pods-RichEditorView/Pods-RichEditorView-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/Pods-RichEditorView/Info.plist"; + GCC_PREFIX_HEADER = "Target Support Files/RichEditorView/RichEditorView-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/RichEditorView/Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 8.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MODULEMAP_FILE = "Target Support Files/Pods-RichEditorView/Pods-RichEditorView.modulemap"; - MTL_ENABLE_DEBUG_INFO = YES; + MODULEMAP_FILE = "Target Support Files/RichEditorView/RichEditorView.modulemap"; + MTL_ENABLE_DEBUG_INFO = NO; PRODUCT_NAME = RichEditorView; SDKROOT = iphoneos; SKIP_INSTALL = YES; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; TARGETED_DEVICE_FAMILY = "1,2"; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; - name = Debug; - }; - 48ACB4FA699979AE271AE776 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - COPY_PHASE_STRIP = YES; - ENABLE_NS_ASSERTIONS = NO; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_PREPROCESSOR_DEFINITIONS = "RELEASE=1"; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - STRIP_INSTALLED_PRODUCT = NO; - SYMROOT = "${SRCROOT}/../build"; - VALIDATE_PRODUCT = YES; - }; name = Release; }; - 67761794449454D67A09AD9D /* Debug */ = { + 65C86A257CE740656BE8F46C3D902704 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 206734FD303CF362426079F4 /* Pods.debug.xcconfig */; + baseConfigurationReference = 13F662FB6A3FE2BD448A5BBADCFD78DD /* Pods.release.xcconfig */; buildSettings = { "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; CURRENT_PROJECT_VERSION = 1; @@ -694,21 +658,20 @@ IPHONEOS_DEPLOYMENT_TARGET = 8.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; MODULEMAP_FILE = "Target Support Files/Pods/Pods.modulemap"; - MTL_ENABLE_DEBUG_INFO = YES; + MTL_ENABLE_DEBUG_INFO = NO; OTHER_LDFLAGS = ""; OTHER_LIBTOOLFLAGS = ""; PODS_ROOT = "$(SRCROOT)"; PRODUCT_NAME = Pods; SDKROOT = iphoneos; SKIP_INSTALL = YES; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; TARGETED_DEVICE_FAMILY = "1,2"; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; - name = Debug; + name = Release; }; - AF70371B71BBB9755E376CDF /* Debug */ = { + A70CDAD61F90AC503C7D04CC22DA2923 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; @@ -747,9 +710,9 @@ }; name = Debug; }; - FE7F10AAEA539BEF59AA3B01 /* Release */ = { + C17A87E6486EC31BC577B018D4827884 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 6EFF83D38E5C7C022EF80348 /* Pods.release.xcconfig */; + baseConfigurationReference = A7A344DE903C1A95FCE2CD09C2D2AAED /* Pods.debug.xcconfig */; buildSettings = { "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; CURRENT_PROJECT_VERSION = 1; @@ -763,50 +726,85 @@ IPHONEOS_DEPLOYMENT_TARGET = 8.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; MODULEMAP_FILE = "Target Support Files/Pods/Pods.modulemap"; - MTL_ENABLE_DEBUG_INFO = NO; + MTL_ENABLE_DEBUG_INFO = YES; OTHER_LDFLAGS = ""; OTHER_LIBTOOLFLAGS = ""; PODS_ROOT = "$(SRCROOT)"; PRODUCT_NAME = Pods; SDKROOT = iphoneos; SKIP_INSTALL = YES; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; TARGETED_DEVICE_FAMILY = "1,2"; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; + name = Debug; + }; + FB45FFD90572718D82AB9092B750F0CA /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = YES; + ENABLE_NS_ASSERTIONS = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_PREPROCESSOR_DEFINITIONS = "RELEASE=1"; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + STRIP_INSTALLED_PRODUCT = NO; + SYMROOT = "${SRCROOT}/../build"; + VALIDATE_PRODUCT = YES; + }; name = Release; }; /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ - 048B4F97BED31BCE51F87320 /* Build configuration list for PBXNativeTarget "Pods" */ = { + 16AA1A42C28B4492F6EAF8223559C284 /* Build configuration list for PBXNativeTarget "RichEditorView" */ = { isa = XCConfigurationList; buildConfigurations = ( - 67761794449454D67A09AD9D /* Debug */, - FE7F10AAEA539BEF59AA3B01 /* Release */, + 3A238F3220518398EFF208FF7B595F22 /* Debug */, + 4E452E4EA4291A59B6167CEAEC440CC4 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 510F1CD0B4233401C1BA6F2B /* Build configuration list for PBXNativeTarget "Pods-RichEditorView" */ = { + 2D8E8EC45A3A1A1D94AE762CB5028504 /* Build configuration list for PBXProject "Pods" */ = { isa = XCConfigurationList; buildConfigurations = ( - 3944599D9789E79179FE24F7 /* Debug */, - 1E6886AD9A7EFB04B5C08E57 /* Release */, + A70CDAD61F90AC503C7D04CC22DA2923 /* Debug */, + FB45FFD90572718D82AB9092B750F0CA /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 9A776911EDB4F4FCF1DB3EB0 /* Build configuration list for PBXProject "Pods" */ = { + 8F9A243A69C2B625E0DEDB86C5153E15 /* Build configuration list for PBXNativeTarget "Pods" */ = { isa = XCConfigurationList; buildConfigurations = ( - AF70371B71BBB9755E376CDF /* Debug */, - 48ACB4FA699979AE271AE776 /* Release */, + C17A87E6486EC31BC577B018D4827884 /* Debug */, + 65C86A257CE740656BE8F46C3D902704 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; /* End XCConfigurationList section */ }; - rootObject = FEAD181C8CA074C15B0CBCB6 /* Project object */; + rootObject = D41D8CD98F00B204E9800998ECF8427E /* Project object */; } diff --git a/RichEditorViewSample/Pods/Pods.xcodeproj/xcshareddata/xcschemes/RichEditorView.xcscheme b/RichEditorViewSample/Pods/Pods.xcodeproj/xcshareddata/xcschemes/RichEditorView.xcscheme new file mode 100644 index 00000000..66210c29 --- /dev/null +++ b/RichEditorViewSample/Pods/Pods.xcodeproj/xcshareddata/xcschemes/RichEditorView.xcscheme @@ -0,0 +1,62 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/RichEditorViewSample/Pods/Target Support Files/Pods-RichEditorView/Pods-RichEditorView-Private.xcconfig b/RichEditorViewSample/Pods/Target Support Files/Pods-RichEditorView/Pods-RichEditorView-Private.xcconfig deleted file mode 100644 index 4d13fee1..00000000 --- a/RichEditorViewSample/Pods/Target Support Files/Pods-RichEditorView/Pods-RichEditorView-Private.xcconfig +++ /dev/null @@ -1,10 +0,0 @@ -#include "Pods-RichEditorView.xcconfig" -CONFIGURATION_BUILD_DIR = $PODS_FRAMEWORK_BUILD_PATH -FRAMEWORK_SEARCH_PATHS = "$PODS_FRAMEWORK_BUILD_PATH" -GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/RichEditorView" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/RichEditorView" -OTHER_LDFLAGS = -ObjC -OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" -PODS_FRAMEWORK_BUILD_PATH = $(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/Pods -PODS_ROOT = ${SRCROOT} -SKIP_INSTALL = YES \ No newline at end of file diff --git a/RichEditorViewSample/Pods/Target Support Files/Pods-RichEditorView/Pods-RichEditorView-dummy.m b/RichEditorViewSample/Pods/Target Support Files/Pods-RichEditorView/Pods-RichEditorView-dummy.m deleted file mode 100644 index b1068fab..00000000 --- a/RichEditorViewSample/Pods/Target Support Files/Pods-RichEditorView/Pods-RichEditorView-dummy.m +++ /dev/null @@ -1,5 +0,0 @@ -#import -@interface PodsDummy_Pods_RichEditorView : NSObject -@end -@implementation PodsDummy_Pods_RichEditorView -@end diff --git a/RichEditorViewSample/Pods/Target Support Files/Pods/Pods-environment.h b/RichEditorViewSample/Pods/Target Support Files/Pods/Pods-environment.h deleted file mode 100644 index d73b4184..00000000 --- a/RichEditorViewSample/Pods/Target Support Files/Pods/Pods-environment.h +++ /dev/null @@ -1,14 +0,0 @@ - -// To check if a library is compiled with CocoaPods you -// can use the `COCOAPODS` macro definition which is -// defined in the xcconfigs so it is available in -// headers also when they are imported in the client -// project. - - -// RichEditorView -#define COCOAPODS_POD_AVAILABLE_RichEditorView -#define COCOAPODS_VERSION_MAJOR_RichEditorView 1 -#define COCOAPODS_VERSION_MINOR_RichEditorView 0 -#define COCOAPODS_VERSION_PATCH_RichEditorView 0 - diff --git a/RichEditorViewSample/Pods/Target Support Files/Pods/Pods-frameworks.sh b/RichEditorViewSample/Pods/Target Support Files/Pods/Pods-frameworks.sh index b92ad5ef..0c991f67 100755 --- a/RichEditorViewSample/Pods/Target Support Files/Pods/Pods-frameworks.sh +++ b/RichEditorViewSample/Pods/Target Support Files/Pods/Pods-frameworks.sh @@ -8,48 +8,52 @@ SWIFT_STDLIB_PATH="${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" install_framework() { - local source="${BUILT_PRODUCTS_DIR}/Pods/$1" + if [ -r "${BUILT_PRODUCTS_DIR}/$1" ]; then + local source="${BUILT_PRODUCTS_DIR}/$1" + else + local source="${BUILT_PRODUCTS_DIR}/$(basename "$1")" + fi + local destination="${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" if [ -L "${source}" ]; then echo "Symlinked..." - source=$(readlink "${source}") + source="$(readlink "${source}")" fi # use filter instead of exclude so missing patterns dont' throw errors - echo "rsync -av --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers/" --filter "- PrivateHeaders/" ${source} ${destination}" - rsync -av --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers/" --filter "- PrivateHeaders/" "${source}" "${destination}" + echo "rsync -av --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${destination}\"" + rsync -av --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${destination}" + # Resign the code if required by the build settings to avoid unstable apps - if [ "${CODE_SIGNING_REQUIRED}" == "YES" ]; then - code_sign "${destination}/$1" - fi + code_sign_if_enabled "${destination}/$(basename "$1")" # Embed linked Swift runtime libraries local basename - basename=$(echo $1 | sed -E s/\\..+// && exit ${PIPESTATUS[0]}) + basename="$(basename "$1" | sed -E s/\\..+// && exit ${PIPESTATUS[0]})" local swift_runtime_libs - swift_runtime_libs=$(xcrun otool -LX "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/$1/${basename}" | grep --color=never @rpath/libswift | sed -E s/@rpath\\/\(.+dylib\).*/\\1/g | uniq -u && exit ${PIPESTATUS[0]}) + swift_runtime_libs=$(xcrun otool -LX "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/${basename}.framework/${basename}" | grep --color=never @rpath/libswift | sed -E s/@rpath\\/\(.+dylib\).*/\\1/g | uniq -u && exit ${PIPESTATUS[0]}) for lib in $swift_runtime_libs; do echo "rsync -auv \"${SWIFT_STDLIB_PATH}/${lib}\" \"${destination}\"" rsync -auv "${SWIFT_STDLIB_PATH}/${lib}" "${destination}" - if [ "${CODE_SIGNING_REQUIRED}" == "YES" ]; then - code_sign "${destination}/${lib}" - fi + code_sign_if_enabled "${destination}/${lib}" done } # Signs a framework with the provided identity -code_sign() { - # Use the current code_sign_identitiy - echo "Code Signing $1 with Identity ${EXPANDED_CODE_SIGN_IDENTITY_NAME}" - echo "/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} --preserve-metadata=identifier,entitlements $1" - /usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} --preserve-metadata=identifier,entitlements "$1" +code_sign_if_enabled() { + 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}" + echo "/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} --preserve-metadata=identifier,entitlements \"$1\"" + /usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} --preserve-metadata=identifier,entitlements "$1" + fi } if [[ "$CONFIGURATION" == "Debug" ]]; then - install_framework 'RichEditorView.framework' + install_framework 'Pods/RichEditorView.framework' fi if [[ "$CONFIGURATION" == "Release" ]]; then - install_framework 'RichEditorView.framework' + install_framework 'Pods/RichEditorView.framework' fi diff --git a/RichEditorViewSample/Pods/Target Support Files/Pods/Pods-resources.sh b/RichEditorViewSample/Pods/Target Support Files/Pods/Pods-resources.sh index 0adecdd3..ea685a22 100755 --- a/RichEditorViewSample/Pods/Target Support Files/Pods/Pods-resources.sh +++ b/RichEditorViewSample/Pods/Target Support Files/Pods/Pods-resources.sh @@ -6,7 +6,13 @@ mkdir -p "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" RESOURCES_TO_COPY=${PODS_ROOT}/resources-to-copy-${TARGETNAME}.txt > "$RESOURCES_TO_COPY" -XCASSET_FILES="" +XCASSET_FILES=() + +realpath() { + DIRECTORY="$(cd "${1%/*}" && pwd)" + FILENAME="${1##*/}" + echo "$DIRECTORY/$FILENAME" +} install_resource() { @@ -16,7 +22,7 @@ install_resource() ibtool --reference-external-strings-file --errors --warnings --notices --output-format human-readable-text --compile "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$1\" .storyboard`.storyboardc" "${PODS_ROOT}/$1" --sdk "${SDKROOT}" ;; *.xib) - echo "ibtool --reference-external-strings-file --errors --warnings --notices --output-format human-readable-text --compile ${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$1\" .xib`.nib ${PODS_ROOT}/$1 --sdk ${SDKROOT}" + echo "ibtool --reference-external-strings-file --errors --warnings --notices --output-format human-readable-text --compile ${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$1\" .xib`.nib ${PODS_ROOT}/$1 --sdk ${SDKROOT}" ibtool --reference-external-strings-file --errors --warnings --notices --output-format human-readable-text --compile "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$1\" .xib`.nib" "${PODS_ROOT}/$1" --sdk "${SDKROOT}" ;; *.framework) @@ -38,7 +44,8 @@ install_resource() xcrun mapc "${PODS_ROOT}/$1" "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$1" .xcmappingmodel`.cdm" ;; *.xcassets) - XCASSET_FILES="$XCASSET_FILES '${PODS_ROOT}/$1'" + ABSOLUTE_XCASSET_FILE=$(realpath "${PODS_ROOT}/$1") + XCASSET_FILES+=("$ABSOLUTE_XCASSET_FILE") ;; /*) echo "$1" @@ -51,8 +58,10 @@ install_resource() esac } +mkdir -p "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" if [[ "${ACTION}" == "install" ]]; then + mkdir -p "${INSTALL_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${INSTALL_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" fi rm -f "$RESOURCES_TO_COPY" @@ -73,6 +82,14 @@ then TARGET_DEVICE_ARGS="--target-device mac" ;; esac - while read line; do XCASSET_FILES="$XCASSET_FILES '$line'"; done <<<$(find "$PWD" -name "*.xcassets" | egrep -v "^$PODS_ROOT") - echo $XCASSET_FILES | xargs actool --output-format human-readable-text --notices --warnings --platform "${PLATFORM_NAME}" --minimum-deployment-target "${IPHONEOS_DEPLOYMENT_TARGET}" ${TARGET_DEVICE_ARGS} --compress-pngs --compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" + + # Find all other xcassets (this unfortunately includes those of path pods and other targets). + OTHER_XCASSETS=$(find "$PWD" -iname "*.xcassets" -type d) + while read line; do + if [[ $line != "`realpath $PODS_ROOT`*" ]]; then + XCASSET_FILES+=("$line") + 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 "${IPHONEOS_DEPLOYMENT_TARGET}" ${TARGET_DEVICE_ARGS} --compress-pngs --compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" fi diff --git a/RichEditorViewSample/Pods/Target Support Files/Pods/Pods.debug.xcconfig b/RichEditorViewSample/Pods/Target Support Files/Pods/Pods.debug.xcconfig index cd642a77..a6854119 100644 --- a/RichEditorViewSample/Pods/Target Support Files/Pods/Pods.debug.xcconfig +++ b/RichEditorViewSample/Pods/Target Support Files/Pods/Pods.debug.xcconfig @@ -1,9 +1,7 @@ -FRAMEWORK_SEARCH_PATHS = "$PODS_FRAMEWORK_BUILD_PATH" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' -OTHER_CFLAGS = $(inherited) -iquote "$PODS_FRAMEWORK_BUILD_PATH/RichEditorView.framework/Headers" -OTHER_LDFLAGS = $(inherited) -ObjC -framework "RichEditorView" -OTHER_LIBTOOLFLAGS = $(OTHER_LDFLAGS) +OTHER_CFLAGS = $(inherited) -iquote "$CONFIGURATION_BUILD_DIR/RichEditorView.framework/Headers" +OTHER_LDFLAGS = $(inherited) -framework "RichEditorView" OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" PODS_FRAMEWORK_BUILD_PATH = $(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/Pods PODS_ROOT = ${SRCROOT}/Pods \ No newline at end of file diff --git a/RichEditorViewSample/Pods/Target Support Files/Pods/Pods.release.xcconfig b/RichEditorViewSample/Pods/Target Support Files/Pods/Pods.release.xcconfig index cd642a77..a6854119 100644 --- a/RichEditorViewSample/Pods/Target Support Files/Pods/Pods.release.xcconfig +++ b/RichEditorViewSample/Pods/Target Support Files/Pods/Pods.release.xcconfig @@ -1,9 +1,7 @@ -FRAMEWORK_SEARCH_PATHS = "$PODS_FRAMEWORK_BUILD_PATH" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' -OTHER_CFLAGS = $(inherited) -iquote "$PODS_FRAMEWORK_BUILD_PATH/RichEditorView.framework/Headers" -OTHER_LDFLAGS = $(inherited) -ObjC -framework "RichEditorView" -OTHER_LIBTOOLFLAGS = $(OTHER_LDFLAGS) +OTHER_CFLAGS = $(inherited) -iquote "$CONFIGURATION_BUILD_DIR/RichEditorView.framework/Headers" +OTHER_LDFLAGS = $(inherited) -framework "RichEditorView" OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" PODS_FRAMEWORK_BUILD_PATH = $(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/Pods PODS_ROOT = ${SRCROOT}/Pods \ No newline at end of file diff --git a/RichEditorViewSample/Pods/Target Support Files/Pods-RichEditorView/Info.plist b/RichEditorViewSample/Pods/Target Support Files/RichEditorView/Info.plist similarity index 97% rename from RichEditorViewSample/Pods/Target Support Files/Pods-RichEditorView/Info.plist rename to RichEditorViewSample/Pods/Target Support Files/RichEditorView/Info.plist index 69745425..ed58c09e 100644 --- a/RichEditorViewSample/Pods/Target Support Files/Pods-RichEditorView/Info.plist +++ b/RichEditorViewSample/Pods/Target Support Files/RichEditorView/Info.plist @@ -15,7 +15,7 @@ CFBundlePackageType FMWK CFBundleShortVersionString - 1.0.0 + 1.2.0 CFBundleSignature ???? CFBundleVersion diff --git a/RichEditorViewSample/Pods/Target Support Files/RichEditorView/RichEditorView-Private.xcconfig b/RichEditorViewSample/Pods/Target Support Files/RichEditorView/RichEditorView-Private.xcconfig new file mode 100644 index 00000000..984fcd36 --- /dev/null +++ b/RichEditorViewSample/Pods/Target Support Files/RichEditorView/RichEditorView-Private.xcconfig @@ -0,0 +1,6 @@ +#include "RichEditorView.xcconfig" +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/RichEditorView" "${PODS_ROOT}/Headers/Public" +OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" +PODS_ROOT = ${SRCROOT} +SKIP_INSTALL = YES \ No newline at end of file diff --git a/RichEditorViewSample/Pods/Target Support Files/RichEditorView/RichEditorView-dummy.m b/RichEditorViewSample/Pods/Target Support Files/RichEditorView/RichEditorView-dummy.m new file mode 100644 index 00000000..dd3d215c --- /dev/null +++ b/RichEditorViewSample/Pods/Target Support Files/RichEditorView/RichEditorView-dummy.m @@ -0,0 +1,5 @@ +#import +@interface PodsDummy_RichEditorView : NSObject +@end +@implementation PodsDummy_RichEditorView +@end diff --git a/RichEditorViewSample/Pods/Target Support Files/Pods-RichEditorView/Pods-RichEditorView-prefix.pch b/RichEditorViewSample/Pods/Target Support Files/RichEditorView/RichEditorView-prefix.pch similarity index 62% rename from RichEditorViewSample/Pods/Target Support Files/Pods-RichEditorView/Pods-RichEditorView-prefix.pch rename to RichEditorViewSample/Pods/Target Support Files/RichEditorView/RichEditorView-prefix.pch index 95cf11d9..aa992a4a 100644 --- a/RichEditorViewSample/Pods/Target Support Files/Pods-RichEditorView/Pods-RichEditorView-prefix.pch +++ b/RichEditorViewSample/Pods/Target Support Files/RichEditorView/RichEditorView-prefix.pch @@ -2,4 +2,3 @@ #import #endif -#import "Pods-environment.h" diff --git a/RichEditorViewSample/Pods/Target Support Files/Pods-RichEditorView/Pods-RichEditorView-umbrella.h b/RichEditorViewSample/Pods/Target Support Files/RichEditorView/RichEditorView-umbrella.h similarity index 100% rename from RichEditorViewSample/Pods/Target Support Files/Pods-RichEditorView/Pods-RichEditorView-umbrella.h rename to RichEditorViewSample/Pods/Target Support Files/RichEditorView/RichEditorView-umbrella.h diff --git a/RichEditorViewSample/Pods/Target Support Files/Pods-RichEditorView/Pods-RichEditorView.modulemap b/RichEditorViewSample/Pods/Target Support Files/RichEditorView/RichEditorView.modulemap similarity index 58% rename from RichEditorViewSample/Pods/Target Support Files/Pods-RichEditorView/Pods-RichEditorView.modulemap rename to RichEditorViewSample/Pods/Target Support Files/RichEditorView/RichEditorView.modulemap index 89bb84d3..884eed3e 100644 --- a/RichEditorViewSample/Pods/Target Support Files/Pods-RichEditorView/Pods-RichEditorView.modulemap +++ b/RichEditorViewSample/Pods/Target Support Files/RichEditorView/RichEditorView.modulemap @@ -1,5 +1,5 @@ framework module RichEditorView { - umbrella header "Pods-RichEditorView-umbrella.h" + umbrella header "RichEditorView-umbrella.h" export * module * { export * } diff --git a/RichEditorViewSample/Pods/Target Support Files/Pods-RichEditorView/Pods-RichEditorView.xcconfig b/RichEditorViewSample/Pods/Target Support Files/RichEditorView/RichEditorView.xcconfig similarity index 100% rename from RichEditorViewSample/Pods/Target Support Files/Pods-RichEditorView/Pods-RichEditorView.xcconfig rename to RichEditorViewSample/Pods/Target Support Files/RichEditorView/RichEditorView.xcconfig diff --git a/RichEditorViewSample/RichEditorViewSample.xcodeproj/project.pbxproj b/RichEditorViewSample/RichEditorViewSample.xcodeproj/project.pbxproj index 208bd4cc..f725c9c3 100644 --- a/RichEditorViewSample/RichEditorViewSample.xcodeproj/project.pbxproj +++ b/RichEditorViewSample/RichEditorViewSample.xcodeproj/project.pbxproj @@ -443,7 +443,6 @@ CLANG_ENABLE_MODULES = YES; INFOPLIST_FILE = RichEditorViewSample/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = "com.cjwirth.$(PRODUCT_NAME:rfc1034identifier)"; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OBJC_BRIDGING_HEADER = "RichEditorViewSample/RichEditorViewSample-Bridging-Header.h"; @@ -459,7 +458,6 @@ CLANG_ENABLE_MODULES = YES; INFOPLIST_FILE = RichEditorViewSample/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = "com.cjwirth.$(PRODUCT_NAME:rfc1034identifier)"; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OBJC_BRIDGING_HEADER = "RichEditorViewSample/RichEditorViewSample-Bridging-Header.h"; @@ -470,16 +468,11 @@ isa = XCBuildConfiguration; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; - FRAMEWORK_SEARCH_PATHS = ( - "$(SDKROOT)/Developer/Library/Frameworks", - "$(inherited)", - ); GCC_PREPROCESSOR_DEFINITIONS = ( "DEBUG=1", "$(inherited)", ); INFOPLIST_FILE = RichEditorViewSampleTests/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = "com.cjwirth.$(PRODUCT_NAME:rfc1034identifier)"; PRODUCT_NAME = "$(TARGET_NAME)"; TEST_HOST = "$(BUILT_PRODUCTS_DIR)/RichEditorViewSample.app/RichEditorViewSample"; @@ -490,12 +483,7 @@ isa = XCBuildConfiguration; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; - FRAMEWORK_SEARCH_PATHS = ( - "$(SDKROOT)/Developer/Library/Frameworks", - "$(inherited)", - ); INFOPLIST_FILE = RichEditorViewSampleTests/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = "com.cjwirth.$(PRODUCT_NAME:rfc1034identifier)"; PRODUCT_NAME = "$(TARGET_NAME)"; TEST_HOST = "$(BUILT_PRODUCTS_DIR)/RichEditorViewSample.app/RichEditorViewSample"; diff --git a/RichEditorViewSample/RichEditorViewSample/ObjCViewController.m b/RichEditorViewSample/RichEditorViewSample/ObjCViewController.m index 86f14484..837b7f73 100644 --- a/RichEditorViewSample/RichEditorViewSample/ObjCViewController.m +++ b/RichEditorViewSample/RichEditorViewSample/ObjCViewController.m @@ -44,7 +44,7 @@ - (void)richEditor:(RichEditorView * __nonnull)editor contentDidChange:(NSString } } -- (BOOL)richEditorShouldInteractWithURL:(NSURL * __nonnull)url { +- (BOOL)richEditor:(RichEditorView * __nonnull)editor shouldInteractWithURL:(NSURL * __nonnull)url { return true; }