Long press on the window button to open a new tab
This commit is contained in:
@@ -123,6 +123,22 @@ class BrowserViewController: UIViewController, WKNavigationDelegate,
|
||||
self.present(navController, animated: true, completion: nil)
|
||||
}), for: .touchUpInside)
|
||||
|
||||
let newTabAction = UIAction { [unowned self] action in
|
||||
if let gestureRecognizer = action.sender as? UILongPressGestureRecognizer {
|
||||
if gestureRecognizer.state != .began { return }
|
||||
}
|
||||
|
||||
// Create new tab
|
||||
let newTab = tabController.createNewTab(url: nil)
|
||||
self.tab = newTab
|
||||
}
|
||||
|
||||
let gestureRecognizer = UILongPressGestureRecognizer(action: newTabAction)
|
||||
toolbarController.windowButton.addGestureRecognizer(gestureRecognizer)
|
||||
|
||||
// New tab button
|
||||
toolbarController.newTabButton.addAction(newTabAction, for: .touchUpInside)
|
||||
|
||||
// TextField delegate
|
||||
toolbarController.urlBar.textField.delegate = self
|
||||
|
||||
|
||||
@@ -155,6 +155,7 @@ class ToolbarViewController: UIViewController
|
||||
let windowButton = UIButton(frame: .zero)
|
||||
let backButton = UIButton(frame: .zero)
|
||||
let forwardButton = UIButton(frame: .zero)
|
||||
let newTabButton = UIButton(frame: .zero)
|
||||
|
||||
var darkModeEnabled: Bool = false {
|
||||
didSet {
|
||||
@@ -189,6 +190,9 @@ class ToolbarViewController: UIViewController
|
||||
// Forward button
|
||||
forwardButton.setImage(UIImage(systemName: "chevron.right"), for: .normal)
|
||||
|
||||
// New tab button
|
||||
newTabButton.setImage(UIImage(systemName: "plus"), for: .normal)
|
||||
|
||||
let toolbarAnimationDuration: TimeInterval = 0.3
|
||||
urlBar.textField.addAction(.init(handler: { [traitCollection, toolbarView, urlBar] _ in
|
||||
if traitCollection.horizontalSizeClass == .compact {
|
||||
@@ -223,6 +227,7 @@ class ToolbarViewController: UIViewController
|
||||
toolbarView.trailingButtonsView.addButtonView(darkModeButton)
|
||||
toolbarView.trailingButtonsView.addButtonView(shareButton)
|
||||
toolbarView.trailingButtonsView.addButtonView(scriptControllerIconView)
|
||||
toolbarView.trailingButtonsView.addButtonView(newTabButton)
|
||||
toolbarView.trailingButtonsView.addButtonView(windowButton)
|
||||
}
|
||||
}
|
||||
|
||||
16
SBrowser/Utilities/UIGestureRecognizer+Actions.swift
Normal file
16
SBrowser/Utilities/UIGestureRecognizer+Actions.swift
Normal file
@@ -0,0 +1,16 @@
|
||||
//
|
||||
// UIGestureRecognizer+Actions.swift
|
||||
// SBrowser
|
||||
//
|
||||
// Created by James Magahern on 7/31/20.
|
||||
//
|
||||
|
||||
import UIKit
|
||||
|
||||
extension UIGestureRecognizer
|
||||
{
|
||||
convenience init(action: UIAction) {
|
||||
self.init(target: action, action: NSSelectorFromString("_performActionWithSender:"))
|
||||
objc_setAssociatedObject(self, "associatedUIAction", action, .OBJC_ASSOCIATION_RETAIN)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user