From af4714c4948f1d9c39a7d824b130e5bd80a45b12 Mon Sep 17 00:00:00 2001 From: Sergio Estevao Date: Fri, 23 Jun 2017 11:52:29 +0100 Subject: [PATCH 1/3] Add keyboard shortcuts. --- Example/Example/EditorDemoController.swift | 29 +++++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/Example/Example/EditorDemoController.swift b/Example/Example/EditorDemoController.swift index 8d0be8511..4c4f8aeaf 100644 --- a/Example/Example/EditorDemoController.swift +++ b/Example/Example/EditorDemoController.swift @@ -411,6 +411,26 @@ class EditorDemoController: UIViewController { toolbar.selectItemsMatchingIdentifiers(identifiers) } + override var keyCommands: [UIKeyCommand] { + if richTextView.isFirstResponder { + return [ UIKeyCommand(input:"B", modifierFlags: .command, action:#selector(toggleBold), discoverabilityTitle:NSLocalizedString("Bold", comment: "Discoverability title for bold formatting keyboard shortcut.")), + UIKeyCommand(input:"I", modifierFlags: .command, action:#selector(toggleItalic), discoverabilityTitle:NSLocalizedString("Italic", comment: "Discoverability title for italic formatting keyboard shortcut.")), + UIKeyCommand(input:"D", modifierFlags: [.command, .alternate], action:#selector(toggleStrikethrough), discoverabilityTitle: NSLocalizedString("Strikethrough", comment:"Discoverability title for strikethrough formatting keyboard shortcut.")), + UIKeyCommand(input:"U", modifierFlags: .command, action:#selector(EditorDemoController.toggleUnderline(_:)), discoverabilityTitle: NSLocalizedString("Underline", comment:"Discoverability title for underline formatting keyboard shortcut.")), + UIKeyCommand(input:"Q", modifierFlags:[.command,.alternate], action: #selector(toggleBlockquote), discoverabilityTitle: NSLocalizedString("Block Quote", comment: "Discoverability title for block quote keyboard shortcut.")), + UIKeyCommand(input:"K", modifierFlags:.command, action:#selector(toggleLink), discoverabilityTitle: NSLocalizedString("Insert Link", comment: "Discoverability title for insert link keyboard shortcut.")), + UIKeyCommand(input:"M", modifierFlags:[.command,.alternate], action:#selector(showImagePicker), discoverabilityTitle: NSLocalizedString("Insert Media", comment: "Discoverability title for insert media keyboard shortcut.")), + UIKeyCommand(input:"U", modifierFlags:[.command, .alternate], action:#selector(toggleUnorderedList), discoverabilityTitle:NSLocalizedString("Bullet List", comment: "Discoverability title for bullet list keyboard shortcut.")), + UIKeyCommand(input:"O", modifierFlags:[.command, .alternate], action:#selector(toggleOrderedList), discoverabilityTitle:NSLocalizedString("Numbered List", comment:"Discoverability title for numbered list keyboard shortcut.")), + UIKeyCommand(input:"H", modifierFlags:[.control, .shift], action:#selector(toggleEditingMode), discoverabilityTitle:NSLocalizedString("Toggle HTML Source ", comment: "Discoverability title for HTML keyboard shortcut.")) + ] + } else if htmlTextView.isFirstResponder { + return [UIKeyCommand(input:"H", modifierFlags:[.control, .shift], action:#selector(toggleEditingMode), discoverabilityTitle:NSLocalizedString("Toggle HTML Source ", comment: "Discoverability title for HTML keyboard shortcut.")) + ] + } + return [] + } + // MARK: - Sample Content @@ -636,6 +656,14 @@ extension EditorDemoController : Aztec.FormatBarDelegate { }) } + func toggleUnorderedList() { + richTextView.toggleUnorderedList(range: richTextView.selectedRange) + } + + func toggleOrderedList() { + richTextView.toggleOrderedList(range: richTextView.selectedRange) + } + func showOptionsTableViewControllerWithOptions(_ options: [OptionsTableViewOption], fromBarItem barItem: FormatBarItem, selectedRowIndex index: Int?, @@ -1169,7 +1197,6 @@ extension EditorDemoController: UIPopoverPresentationControllerDelegate { } } - // MARK: - Misc // private extension EditorDemoController From 3d6f9b4f043523f807652d2d1adbd702c2cdaea9 Mon Sep 17 00:00:00 2001 From: Sergio Estevao Date: Fri, 23 Jun 2017 15:04:56 +0100 Subject: [PATCH 2/3] Fix shortcut for source code. --- Example/Example/EditorDemoController.swift | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Example/Example/EditorDemoController.swift b/Example/Example/EditorDemoController.swift index 4c4f8aeaf..e47a69a22 100644 --- a/Example/Example/EditorDemoController.swift +++ b/Example/Example/EditorDemoController.swift @@ -422,10 +422,10 @@ class EditorDemoController: UIViewController { UIKeyCommand(input:"M", modifierFlags:[.command,.alternate], action:#selector(showImagePicker), discoverabilityTitle: NSLocalizedString("Insert Media", comment: "Discoverability title for insert media keyboard shortcut.")), UIKeyCommand(input:"U", modifierFlags:[.command, .alternate], action:#selector(toggleUnorderedList), discoverabilityTitle:NSLocalizedString("Bullet List", comment: "Discoverability title for bullet list keyboard shortcut.")), UIKeyCommand(input:"O", modifierFlags:[.command, .alternate], action:#selector(toggleOrderedList), discoverabilityTitle:NSLocalizedString("Numbered List", comment:"Discoverability title for numbered list keyboard shortcut.")), - UIKeyCommand(input:"H", modifierFlags:[.control, .shift], action:#selector(toggleEditingMode), discoverabilityTitle:NSLocalizedString("Toggle HTML Source ", comment: "Discoverability title for HTML keyboard shortcut.")) + UIKeyCommand(input:"H", modifierFlags:[.command, .shift], action:#selector(toggleEditingMode), discoverabilityTitle:NSLocalizedString("Toggle HTML Source ", comment: "Discoverability title for HTML keyboard shortcut.")) ] } else if htmlTextView.isFirstResponder { - return [UIKeyCommand(input:"H", modifierFlags:[.control, .shift], action:#selector(toggleEditingMode), discoverabilityTitle:NSLocalizedString("Toggle HTML Source ", comment: "Discoverability title for HTML keyboard shortcut.")) + return [UIKeyCommand(input:"H", modifierFlags:[.command, .shift], action:#selector(toggleEditingMode), discoverabilityTitle:NSLocalizedString("Toggle HTML Source ", comment: "Discoverability title for HTML keyboard shortcut.")) ] } return [] From 67032863fd88d5723ccfc9f41716d7d9caf0f1a6 Mon Sep 17 00:00:00 2001 From: Sergio Estevao Date: Sat, 24 Jun 2017 18:31:03 +0100 Subject: [PATCH 3/3] Make sure the toolbar is extended when going to HTML mode. --- Aztec/Classes/GUI/FormatBar/FormatBar.swift | 4 ++++ Example/Example/EditorDemoController.swift | 3 ++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/Aztec/Classes/GUI/FormatBar/FormatBar.swift b/Aztec/Classes/GUI/FormatBar/FormatBar.swift index 27f2054aa..8e4ebd3de 100644 --- a/Aztec/Classes/GUI/FormatBar/FormatBar.swift +++ b/Aztec/Classes/GUI/FormatBar/FormatBar.swift @@ -311,6 +311,10 @@ open class FormatBar: UIView { @IBAction func handleToggleButtonAction(_ sender: FormatBarItem) { let shouldExpand = overflowItemsHidden + overflowToolbar(expand: shouldExpand) + } + + open func overflowToolbar(expand shouldExpand: Bool) { setOverflowItemsVisible(shouldExpand) let direction: OverflowToggleAnimationDirection = shouldExpand ? .vertical : .horizontal diff --git a/Example/Example/EditorDemoController.swift b/Example/Example/EditorDemoController.swift index e47a69a22..8e6ff7fc8 100644 --- a/Example/Example/EditorDemoController.swift +++ b/Example/Example/EditorDemoController.swift @@ -346,6 +346,7 @@ class EditorDemoController: UIViewController { // MARK: - Helpers @IBAction func toggleEditingMode() { + formatBar.overflowToolbar(expand: true) editingMode.toggle() } @@ -415,7 +416,7 @@ class EditorDemoController: UIViewController { if richTextView.isFirstResponder { return [ UIKeyCommand(input:"B", modifierFlags: .command, action:#selector(toggleBold), discoverabilityTitle:NSLocalizedString("Bold", comment: "Discoverability title for bold formatting keyboard shortcut.")), UIKeyCommand(input:"I", modifierFlags: .command, action:#selector(toggleItalic), discoverabilityTitle:NSLocalizedString("Italic", comment: "Discoverability title for italic formatting keyboard shortcut.")), - UIKeyCommand(input:"D", modifierFlags: [.command, .alternate], action:#selector(toggleStrikethrough), discoverabilityTitle: NSLocalizedString("Strikethrough", comment:"Discoverability title for strikethrough formatting keyboard shortcut.")), + UIKeyCommand(input:"S", modifierFlags: [.command], action:#selector(toggleStrikethrough), discoverabilityTitle: NSLocalizedString("Strikethrough", comment:"Discoverability title for strikethrough formatting keyboard shortcut.")), UIKeyCommand(input:"U", modifierFlags: .command, action:#selector(EditorDemoController.toggleUnderline(_:)), discoverabilityTitle: NSLocalizedString("Underline", comment:"Discoverability title for underline formatting keyboard shortcut.")), UIKeyCommand(input:"Q", modifierFlags:[.command,.alternate], action: #selector(toggleBlockquote), discoverabilityTitle: NSLocalizedString("Block Quote", comment: "Discoverability title for block quote keyboard shortcut.")), UIKeyCommand(input:"K", modifierFlags:.command, action:#selector(toggleLink), discoverabilityTitle: NSLocalizedString("Insert Link", comment: "Discoverability title for insert link keyboard shortcut.")),