如何在iPadOS硬件键盘助手栏添加工具栏项?
iPadOS硬件键盘助手栏实现方案
你遇到的问题是因为默认的.keyboard placement在未关联文本输入焦点时,会显示为适配iPhone的全屏工具栏。要实现iA Writer那样的紧凑硬件键盘助手栏,只需将工具栏与文本输入控件的焦点状态绑定即可,这是完全基于公开API的方案:
定义焦点状态变量
在视图中添加焦点状态,用于跟踪文本输入控件的激活状态:@FocusState private var isInputFocused: Bool绑定焦点到文本输入控件
将焦点变量绑定到你的TextField或TextEditor上:TextEditor(text: $yourContent) .focused($isInputFocused)添加关联的键盘工具栏
将工具栏直接附加到文本输入控件所在的视图,使用.keyboardplacement组织工具栏项:TextEditor(text: $yourContent) .focused($isInputFocused) .toolbar { ToolbarItemGroup(placement: .keyboard) { Button("加粗") { /* 执行加粗操作 */ } Button("斜体") { /* 执行斜体操作 */ } Spacer() Button("完成") { isInputFocused = false } } }
关键注意事项
- 确保部署目标为iPadOS 15+,该版本对键盘工具栏的自适应显示做了优化
- 不要将键盘工具栏添加到全局导航栏的
.toolbar中,必须直接附加到文本输入控件的视图层级 - 当文本输入控件获得焦点时,iPadOS会自动切换为紧凑的硬件键盘助手栏样式,而非全屏工具栏
内容的提问来源于stack exchange,提问作者Dovizu
相关产品推荐
相关产品推荐

