Another attempt to fix empty URL bar

This commit is contained in:
James Magahern
2023-08-10 19:52:59 -07:00
parent 3f5d608908
commit a4c6caeb8e
6 changed files with 66 additions and 15 deletions

View File

@@ -9,9 +9,18 @@ import UIKit
class ToolbarView: UIView
{
var urlBar: URLBar? { didSet { containerView.addSubview(urlBar!) } }
var urlBar: URLBar? {
didSet {
guard let urlBar else { return }
containerView.addSubview(urlBar)
urlBar.textField.addAction(.init(handler: { [unowned self] _ in
layoutLatch.activate()
}), for: [ .editingDidBegin, .editingDidEnd ])
}
}
var cancelButtonVisible: Bool = false { didSet { layoutSubviews() } }
var cancelButtonVisible: Bool = false { didSet { setNeedsLayout() } }
let containerView = UIView(frame: .zero)
let backgroundView = GradientView(direction: .vertical, colors: [
@@ -23,6 +32,9 @@ class ToolbarView: UIView
let leadingButtonsView = ToolbarButtonContainerView(frame: .zero)
let trailingButtonsView = ToolbarButtonContainerView(frame: .zero)
// Something I'm sure I'll regret: to ensure animation with the keyboard, latch layout until we get the right signal.
lazy var layoutLatch = LayoutLatch(self)
convenience init()
{
self.init(frame: .zero)
@@ -54,6 +66,7 @@ class ToolbarView: UIView
override func layoutSubviews()
{
guard !layoutLatch.latched else { return }
super.layoutSubviews()
let shadowPath = UIBezierPath(rect: bounds)