Some main menu fixes

This commit is contained in:
James Magahern
2022-08-03 19:04:40 -07:00
parent 56ed848fe7
commit ace7917080
3 changed files with 33 additions and 1 deletions

View File

@@ -496,6 +496,25 @@ class BrowserViewController: UIViewController
toolbarController.urlBar.textField.resignFirstResponder()
}
override func target(forAction action: Selector, withSender sender: Any?) -> Any? {
var findActions: [Selector] = []
if #available(macCatalyst 16.0, *) {
findActions = [
#selector(UIResponder.find(_:)),
#selector(UIResponder.findNext(_:)),
#selector(UIResponder.findPrevious(_:)),
#selector(UIResponder.findAndReplace(_:)),
#selector(UIResponder.useSelectionForFind(_:)),
]
}
if findActions.contains(where: { $0 == action }) {
return webView.target(forAction: action, withSender: sender)
}
return super.target(forAction: action, withSender: sender)
}
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
becomeFirstResponder()

View File

@@ -49,6 +49,15 @@ protocol ShortcutResponder: AnyObject {
optional func toggleDarkMode(_ sender: Any?)
}
fileprivate extension Array {
func removeNulls() -> Array {
self.filter { element in
guard let keyCommand = element as? UIKeyCommand else { return true }
return !keyCommand.isNull()
}
}
}
public class KeyboardShortcuts {
public enum Category: CaseIterable {
case application
@@ -121,7 +130,7 @@ public class KeyboardShortcuts {
action: #selector(ShortcutResponder.stop)
)
]),
]
].removeNulls()
case .go:
return [

View File

@@ -16,6 +16,10 @@ extension UIKeyCommand {
UIKeyCommand(modifiers: [], input: "", title: "", action: #selector(_null))
}
public func isNull() -> Bool {
return action == #selector(_null)
}
convenience init(modifiers: UIKeyModifierFlags, input: String, title: String, action: Selector) {
self.init(input: input, modifierFlags: modifiers, action: action)
self.title = title