Some main menu fixes
This commit is contained in:
@@ -496,6 +496,25 @@ class BrowserViewController: UIViewController
|
|||||||
toolbarController.urlBar.textField.resignFirstResponder()
|
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) {
|
override func viewWillAppear(_ animated: Bool) {
|
||||||
super.viewWillAppear(animated)
|
super.viewWillAppear(animated)
|
||||||
becomeFirstResponder()
|
becomeFirstResponder()
|
||||||
|
|||||||
@@ -49,6 +49,15 @@ protocol ShortcutResponder: AnyObject {
|
|||||||
optional func toggleDarkMode(_ sender: Any?)
|
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 class KeyboardShortcuts {
|
||||||
public enum Category: CaseIterable {
|
public enum Category: CaseIterable {
|
||||||
case application
|
case application
|
||||||
@@ -121,7 +130,7 @@ public class KeyboardShortcuts {
|
|||||||
action: #selector(ShortcutResponder.stop)
|
action: #selector(ShortcutResponder.stop)
|
||||||
)
|
)
|
||||||
]),
|
]),
|
||||||
]
|
].removeNulls()
|
||||||
|
|
||||||
case .go:
|
case .go:
|
||||||
return [
|
return [
|
||||||
|
|||||||
@@ -16,6 +16,10 @@ extension UIKeyCommand {
|
|||||||
UIKeyCommand(modifiers: [], input: "", title: "", action: #selector(_null))
|
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) {
|
convenience init(modifiers: UIKeyModifierFlags, input: String, title: String, action: Selector) {
|
||||||
self.init(input: input, modifierFlags: modifiers, action: action)
|
self.init(input: input, modifierFlags: modifiers, action: action)
|
||||||
self.title = title
|
self.title = title
|
||||||
|
|||||||
Reference in New Issue
Block a user