Some main menu fixes
This commit is contained in:
@@ -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()
|
||||
|
||||
@@ -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 [
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user