From 0389f8309e16f263cf74ccdfffe96c6aca327ece Mon Sep 17 00:00:00 2001 From: Michal Rentka Date: Thu, 13 Jul 2023 12:37:37 +0200 Subject: [PATCH] Implemented cmd+f command to pdf reader and items list --- .../Detail/Items/Views/ItemsViewController.swift | 8 ++++++++ .../PDF/Views/PDFDocumentViewController.swift | 8 ++++++++ .../Detail/PDF/Views/PDFSearchViewController.swift | 13 +++++++++++++ 3 files changed, 29 insertions(+) diff --git a/Zotero/Scenes/Detail/Items/Views/ItemsViewController.swift b/Zotero/Scenes/Detail/Items/Views/ItemsViewController.swift index 8ecfc1081..ca11d1a36 100644 --- a/Zotero/Scenes/Detail/Items/Views/ItemsViewController.swift +++ b/Zotero/Scenes/Detail/Items/Views/ItemsViewController.swift @@ -163,6 +163,14 @@ final class ItemsViewController: UIViewController { } } + override func pressesBegan(_ presses: Set, with event: UIPressesEvent?) { + guard let key = presses.first?.key, key.characters == "f", key.modifierFlags.contains(.command) else { + super.pressesBegan(presses, with: event) + return + } + self.searchBarContainer?.searchBar.becomeFirstResponder() + } + deinit { DDLogInfo("ItemsViewController deinitialized") } diff --git a/Zotero/Scenes/Detail/PDF/Views/PDFDocumentViewController.swift b/Zotero/Scenes/Detail/PDF/Views/PDFDocumentViewController.swift index d2b452319..e3a8d3ada 100644 --- a/Zotero/Scenes/Detail/PDF/Views/PDFDocumentViewController.swift +++ b/Zotero/Scenes/Detail/PDF/Views/PDFDocumentViewController.swift @@ -112,6 +112,14 @@ final class PDFDocumentViewController: UIViewController { self.updatePencilSettingsIfNeeded() } + override func pressesBegan(_ presses: Set, with event: UIPressesEvent?) { + guard let controller = self.pdfController, let key = presses.first?.key, key.characters == "f", key.modifierFlags.contains(.command) else { + super.pressesBegan(presses, with: event) + return + } + self.parentDelegate?.showSearch(pdfController: controller, text: nil) + } + // MARK: - Actions func focus(page: UInt) { diff --git a/Zotero/Scenes/Detail/PDF/Views/PDFSearchViewController.swift b/Zotero/Scenes/Detail/PDF/Views/PDFSearchViewController.swift index 356ed0364..669e122f3 100644 --- a/Zotero/Scenes/Detail/PDF/Views/PDFSearchViewController.swift +++ b/Zotero/Scenes/Detail/PDF/Views/PDFSearchViewController.swift @@ -51,6 +51,11 @@ final class PDFSearchViewController: UIViewController { super.viewDidLoad() self.setupViews() + } + + override func viewWillAppear(_ animated: Bool) { + super.viewWillAppear(animated) + self.searchBar.becomeFirstResponder() if let text = self.text { @@ -68,6 +73,14 @@ final class PDFSearchViewController: UIViewController { DDLogInfo("PDFSearchViewController deinitialized") } + override func pressesBegan(_ presses: Set, with event: UIPressesEvent?) { + guard let key = presses.first?.key, key.keyCode == .keyboardEscape else { + super.pressesBegan(presses, with: event) + return + } + self.dismiss(animated: true, completion: nil) + } + // MARK: - Actions private func search(for string: String) {