SwiftUI问题:工具栏溢出菜单为何无法打开且为空?
iPadOS 16.1中SwiftUI工具栏溢出菜单无法打开的解决方案
这是iPadOS 16.1的已知系统bug,并非你的代码操作有误。以下是两种可行的修复方案:
方案一:移除.toolbarRole(.editor)修饰符
删除代码中的.toolbarRole(.editor)后,溢出菜单即可正常响应点击。调整后的核心代码片段如下:
NavigationStack { VStack { Image(systemName: "globe") .imageScale(.large) .foregroundColor(.accentColor) Text("Hello, world!") } .navigationTitle("Where are the Overflow Menu items?") .navigationBarTitleDisplayMode(.inline) // 移除该行 .toolbarRole(.editor) .toolbar { ToolbarItemGroup(placement: .secondaryAction) { // ... 原有按钮内容 ... } } .padding() }
方案二:升级至iPadOS 16.2或更高版本
苹果在iPadOS 16.2版本中修复了这个与UIContextMenuInteraction相关的溢出菜单bug,升级系统后保留.toolbarRole(.editor)也能正常打开溢出菜单。
报错日志说明
你看到的日志信息:
[UILog] Called -[UIContextMenuInteraction updateVisibleMenuWithBlock:] while no context menu is visible. This won't do anything.
正是该系统bug的典型表现——系统尝试更新一个未显示的上下文菜单,最终导致溢出按钮点击无响应。
内容的提问来源于stack exchange,提问作者Johan Jonasson
相关产品推荐
相关产品推荐

