diff --git a/Delta/Base.lproj/Settings.storyboard b/Delta/Base.lproj/Settings.storyboard index 2a34c23..d6f92c9 100644 --- a/Delta/Base.lproj/Settings.storyboard +++ b/Delta/Base.lproj/Settings.storyboard @@ -20,7 +20,7 @@ - + @@ -624,17 +624,17 @@ - + - + - + @@ -649,7 +649,7 @@ - + @@ -753,7 +753,7 @@ - + @@ -1001,7 +1001,7 @@ - + @@ -1017,7 +1017,7 @@ - + diff --git a/Delta/Components/Popover Menu/PopoverMenuButton.swift b/Delta/Components/Popover Menu/PopoverMenuButton.swift index 731924a..0b7b653 100644 --- a/Delta/Components/Popover Menu/PopoverMenuButton.swift +++ b/Delta/Components/Popover Menu/PopoverMenuButton.swift @@ -63,6 +63,8 @@ class PopoverMenuButton: UIControl private let arrowLabel: UILabel private let stackView: UIStackView + private var _didLayoutSubviews = false + private var parentNavigationBar: UINavigationBar? { guard let navigationController = self.parentViewController as? UINavigationController ?? self.parentViewController?.navigationController else { return nil } guard self.isDescendant(of: navigationController.navigationBar) else { return nil } @@ -104,6 +106,21 @@ class PopoverMenuButton: UIControl { self.updateTextAttributes() } + + override func layoutSubviews() + { + super.layoutSubviews() + + if !_didLayoutSubviews + { + _didLayoutSubviews = true + + // didMoveToSuperview() can be too early to accurately + // update text attributes, so ensure we also update + // during first layoutSubviews() call. + self.updateTextAttributes() + } + } } private extension PopoverMenuButton diff --git a/Delta/Settings/Controllers/ControllerInputsViewController.swift b/Delta/Settings/Controllers/ControllerInputsViewController.swift index 2f7b14f..97e8be3 100644 --- a/Delta/Settings/Controllers/ControllerInputsViewController.swift +++ b/Delta/Settings/Controllers/ControllerInputsViewController.swift @@ -237,6 +237,8 @@ private extension ControllerInputsViewController self.actionsMenuViewController.items = items self.actionsMenuViewController.isVibrancyEnabled = false + + self.actionsMenuViewController.collectionView.backgroundColor = nil } func prepareCallouts() @@ -257,6 +259,8 @@ private extension ControllerInputsViewController { let calloutView = InputCalloutView() calloutView.delegate = self + calloutView.permittedArrowDirection = .any + calloutView.constrainedInsets = self.view.safeAreaInsets self.calloutViews[AnyInput(input)] = calloutView }