我正在开发一个发送图像的自定义键盘,并且我通过剪贴板发送图像,当用户单击图像时,我希望 “粘贴”工具提示出现在输入文本字段中。我该如何迅速做到这一点?Swift - 如何以编程方式显示“粘贴”工具提示菜单?
1
A
回答
3
更新
从你的问题,它看起来像你想要显示从键盘扩展,而不是在应用程序的文本输入菜单。由于您仅限于UIInputViewController
和UITextDocumentProxy
中的可用方法,因此无法访问应用程序的文本字段或菜单控制器,因此没有API来执行此操作。您必须在自己的应用中提供说明,或者考虑创建一个iMessage扩展,而如果这是您的目标应用。
如果你想这样做,在你自己的应用程序
有三个环节进行。
第一,显示从文本视图菜单,它必须是第一个响应者:
textView.becomeFirstResponder()
其次,你需要知道选择的矩形。如果没有脱口秀或选择,我会放弃。我们不应该关注这种情况,因为文本视图是第一响应者。
guard let selectedRange = textView.selectedTextRange else { return }
let selectionLength = textView.offset(from: selectedRange.start to: selectedRange.end)
let targetRect : CGRect
if selectionLength > 0 {
targetRect = textView.firstRect(for: selectedRange)
} else {
targetRect = textView.caretRect(for: selectedRange.start)
}
最后,我们可以使用共享菜单控制器显示菜单控制器:
UIMenuController.shared.setTargetRect(textView.bounds, in: textView)
UIMenuController.shared.setMenuVisible(true, animated: true)
2
没有在文档代码做到这一点:
UIMenuController *theMenu = [UIMenuController sharedMenuController];
CGRect selectionRect = CGRectMake (currentSelection.x, currentSelection.y, SIDE, SIDE);
[theMenu setTargetRect:selectionRect inView:self];
[theMenu setMenuVisible:YES animated:YES];
或斯威夫特,瞄准textField.frame:
let theMenu = UIMenuController.shared
theMenu.setTargetRect(textField.frame, inView:self)
theMenu.setMenuVisible(true, animated: true)
相关问题
- 1. 以编程方式显示dijit /菜单
- 2. 以编程方式显示ajax调用后的工具提示
- 3. flex以编程方式显示工具提示图表
- 4. 如何以编程方式显示NSSearchField菜单?
- 5. 以编程方式在Winforms应用程序中显示工具提示
- 6. 如何在选项卡菜单上显示工具提示
- 7. 是否可以在DotNetNuke菜单上显示工具提示?
- 8. 在弹出菜单的禁用菜单项上显示工具提示提示
- 9. 在Angular4中以编程方式显示/隐藏引导工具提示
- 10. 如何以编程方式打开传单标记的工具提示?
- 11. 以编程方式显示应用程序栏菜单(wp7)
- 12. 如何在iPhone上显示复制粘贴菜单?
- 13. 如何以编程方式显示UITableView?
- 14. 以编程方式粘贴到iPhone UITextView
- 15. 以编程方式将工具提示放在ListBox类上
- 16. 当验证程序返回“无效”时,如何以编程方式在TextInput上显示工具提示?
- 17. 以编程方式显示主视图
- 18. 如何在html输入字段中的单个词下方显示弹出式菜单/工具提示
- 19. OS X:显示菜单项的工具提示的位置
- 20. 如何以编程方式显示文件的上下文菜单?
- 21. 如何以编程方式在watchkit中显示上下文菜单?
- 22. 如何显示DataGridComboBoxColumn的工具提示?
- 23. 如何显示OMPoint的工具提示
- 24. 如何显示动态工具提示?
- 25. 如何在高图中以编程方式关闭工具提示?
- 26. 如何以编程方式在禁用的按钮上设置工具提示?
- 27. 如何以编程方式将jquery qtip工具提示显示为错误通知器
- 28. 如何以编程方式在Windows Phone中复制/粘贴?
- 29. eclipse e4菜单项工具提示
- 30. 显示AJAX工具提示
感谢您的回答,我很感激。 –