ios 覆盖UI菜单上的用户界面样式(即亮/暗)

pkln4tw6  于 2023-01-22  发布在  iOS
关注(0)|答案(2)|浏览(112)

我的应用程序中有一个简单的UIMenu。正如预期的那样,界面风格会随系统更新。但是,我的应用程序可以覆盖系统界面风格(即亮/暗),所以我希望能够覆盖此默认行为。
UIMenu上没有overrideUserInterfaceStyle属性。
我试过覆盖VC的用户界面风格,但没有成功。
此帖子中的所有解决方案都不起作用:Is there any way to override the (dark/light) user interface style of iOS 13 Context Menus?

s5a0g9ez

s5a0g9ez1#

您应该覆盖按钮的用户界面样式

let optionsButton = UIButton()
let menu = UIMenu(title: "", image: nil, identifier: nil, options: [], children: menuItems)
optionsButton.menu = menu
optionsButton.overrideUserInterfaceStyle = .dark
optionsButton.showsMenuAsPrimaryAction = true
3duebb1j

3duebb1j2#

这对我很有效:

if let keyWindow = UIApplication.shared.connectedScenes.compactMap { $0 as? UIWindowScene }.flatMap { $0.windows }.first { $0.isKeyWindow } {
    keyWindow.overrideUserInterfaceStyle = darkThemeIsNeeded ? .dark : .light
}

相关问题