【问题标题】:Programmatically Hide Keyboard Shortcut Bar iOS 13以编程方式隐藏键盘快捷键栏 iOS 13
【发布时间】:2020-07-07 13:07:04
【问题描述】:
我正在尝试以编程方式删除连接外部键盘时出现在 iPad 底部的键盘快捷键栏。
有很多关于“解决方案”的帖子和答案,但没有一个适用于最新的 iOS。最接近的解决方案是:
UITextInputAssistantItem* item = [self inputAssistantItem];
item.leadingBarButtonGroups = @[];
item.trailingBarButtonGroups = @[];
目前所做的只是删除栏左侧的按钮。这也无济于事:
textField.autocorrectionType = UITextAutocorrectionTypeNo;
如何“以编程方式”删除此栏??
【问题讨论】:
标签:
ios
objective-c
uitextfield
keyboard-shortcuts
【解决方案1】:
遵循现有答案并没有为我做这项工作(iPadOS 14.7.1)。我没有隐藏工具栏,而是在我的屏幕键盘顶部放置了一个空的(因此无用的)灰色条,隐藏了宝贵的屏幕空间,尤其是在横向主页按钮的 iPad 模型上。
我发现,除了设置两个空数组之外,您还需要将inputAccessoryView 设置为nil。 等等! 键盘上方的栏完全消失了。
textField.inputAssistantItem.leadingBarButtonGroups = []
textField.inputAssistantItem.trailingBarButtonGroups = []
textField.inputAccessoryView = nil
您可能认为仅将视图设置为 nil 就可以完成这项工作,但事实证明,这只适用于设置空数组。
【解决方案2】:
从 InterfaceBuilder 中,将 Correction 更改为 No:
或者,来源:
item.autocorrectionType = .no
【解决方案3】:
抱歉使用了swift代码。
你可以试试我的想法:
- 将 UITextField 的 autocorrectionType 从 .yes 更改为 no。
- 获取 inputAssistantItem 并将leadingBarButtonGroups 和 trailingBarButtonGroups 更改为空。
源代码示例:
tfSearchNameHiragana.autocorrectionType = .no
let shortcut: UITextInputAssistantItem? = tfSearchNameHiragana.inputAssistantItem
shortcut?.leadingBarButtonGroups = []
shortcut?.trailingBarButtonGroups = []