From 48be35cbf24cde762abde94d541093fc1253020b Mon Sep 17 00:00:00 2001 From: Riley Testut Date: Mon, 15 Aug 2022 16:17:06 -0500 Subject: [PATCH] Fixes displaying system name in dark text when remapping inputs on iOS 16 --- .../Popover Menu/PopoverMenuButton.swift | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/Delta/Components/Popover Menu/PopoverMenuButton.swift b/Delta/Components/Popover Menu/PopoverMenuButton.swift index 0b7b653..27fcc8b 100644 --- a/Delta/Components/Popover Menu/PopoverMenuButton.swift +++ b/Delta/Components/Popover Menu/PopoverMenuButton.swift @@ -38,11 +38,23 @@ extension UINavigationBar private var _defaultTitleTextAttributes: [NSAttributedString.Key: Any]? { guard self.titleTextAttributes == nil else { return self.titleTextAttributes } - guard - let contentView = self.subviews.first(where: { NSStringFromClass(type(of: $0)).contains("ContentView") || NSStringFromClass(type(of: $0)).contains("ItemView") }), - let titleLabel = contentView.subviews.first(where: { $0 is UILabel }) as? UILabel + guard let contentView = self.subviews.first(where: { NSStringFromClass(type(of: $0)).contains("ContentView") || NSStringFromClass(type(of: $0)).contains("ItemView") }) else { return nil } + let containerView: UIView + + if #available(iOS 16, *) + { + guard let titleControl = contentView.subviews.first(where: { NSStringFromClass(type(of: $0)).contains("Title") }) else { return nil } + containerView = titleControl + } + else + { + containerView = contentView + } + + guard let titleLabel = containerView.subviews.first(where: { $0 is UILabel }) as? UILabel else { return nil } + let textAttributes = titleLabel.attributedText?.attributes(at: 0, effectiveRange: nil) return textAttributes }