Ios 如何在UIMenuController的指定位置添加自定义menuItem?
UIMenuController中有五个默认菜单项:剪切、复制、粘贴、查找、共享。。。我想在菜单“粘贴”和“查找”之间添加一个自定义菜单项“粘贴和搜索”。您可以通过禁用系统菜单并使用Ios 如何在UIMenuController的指定位置添加自定义menuItem?,ios,swift,uimenucontroller,Ios,Swift,Uimenucontroller,UIMenuController中有五个默认菜单项:剪切、复制、粘贴、查找、共享。。。我想在菜单“粘贴”和“查找”之间添加一个自定义菜单项“粘贴和搜索”。您可以通过禁用系统菜单并使用UIMenuController创建自己的菜单来完成此操作 开始对视图进行子类化,如UIWebView或UItextView,UIScrollView,…等,并验证此方法覆盖函数的性能(uu操作:选择器,带sender sender:Any?以禁用系统菜单项 像这样-UIWebView示例 然后开始创建自己的菜单,并
UIMenuController创建自己的菜单来完成此操作
开始对视图进行子类化,如UIWebView
或UItextView
,UIScrollView
,…等,并验证此方法覆盖函数的性能(uu操作:选择器,带sender sender:Any?
以禁用系统菜单项
像这样-UIWebView示例
然后开始创建自己的菜单,并实现其功能复制粘贴,
class ViewController: UIViewController{
@IBOutlet var webView: CustomWebView!
override func viewDidLoad() {
super.viewDidLoad()
self.webView.loadHTMLString("<p>Hello, world!</p>", baseURL: nil)
enableCustomMenu()
}
func enableCustomMenu() {
let cut = UIMenuItem(title: "Cut", action: #selector(runCut))
let copy = UIMenuItem(title: "Copy", action: #selector(runCopy))
let paste = UIMenuItem(title: "Paste", action: #selector(runPaste))
let pasteSearch = UIMenuItem(title: "Paste and Search", action: #selector(runPasteSearch))
let look = UIMenuItem(title: "Look Up", action: #selector(runLook))
// ----> here Arrange as you can
UIMenuController.shared.menuItems = [cut,copy,paste,pasteSearch,look]
}
func disableCustomMenu() {
UIMenuController.shared.menuItems = nil
}
@objc func runCut() {
}
@objc func runCopy() {
let text = webView.stringByEvaluatingJavaScript(from: "window.getSelection().toString();")
print(text ?? "")
}
@objc func runPaste() {
}
@objc func runPasteSearch() {
}
@objc func runLook() {
}
}
类ViewController:UIViewController{
@IBOutlet var webView:CustomWebView!
重写func viewDidLoad(){
super.viewDidLoad()
self.webView.loadHTMLString(“你好,世界!”,baseURL:nil)
启用自定义菜单()
}
func enableCustomMenu(){
let cut=UIMenuItem(标题:“cut”,动作:#选择器(runCut))
let copy=UIMenuItem(标题:“复制”,操作:#选择器(运行复制))
let paste=UIMenuItem(标题:“粘贴”,操作:#选择器(运行粘贴))
让pasteSearch=UIMenuItem(标题:“粘贴和搜索”,操作:#选择器(运行pasteSearch))
let look=UIMenuItem(标题:“查找”,操作:#选择器(runLook))
//----->在这里尽你所能安排
UIMenuController.shared.menuItems=[剪切、复制、粘贴、粘贴搜索、查看]
}
func disableCustomMenu(){
UIMenuController.shared.menuItems=nil
}
@objc func runCut(){
}
@objc func运行副本(){
让text=webView.stringByEvaluatingJavaScript(from:“window.getSelection().toString();”)
打印(文本??“”)
}
@objc func runPaste(){
}
@objc func runPasteSearch(){
}
@objc func runLook(){
}
}
您是否将用于WebView如何为外观添加自定义操作?
class ViewController: UIViewController{
@IBOutlet var webView: CustomWebView!
override func viewDidLoad() {
super.viewDidLoad()
self.webView.loadHTMLString("<p>Hello, world!</p>", baseURL: nil)
enableCustomMenu()
}
func enableCustomMenu() {
let cut = UIMenuItem(title: "Cut", action: #selector(runCut))
let copy = UIMenuItem(title: "Copy", action: #selector(runCopy))
let paste = UIMenuItem(title: "Paste", action: #selector(runPaste))
let pasteSearch = UIMenuItem(title: "Paste and Search", action: #selector(runPasteSearch))
let look = UIMenuItem(title: "Look Up", action: #selector(runLook))
// ----> here Arrange as you can
UIMenuController.shared.menuItems = [cut,copy,paste,pasteSearch,look]
}
func disableCustomMenu() {
UIMenuController.shared.menuItems = nil
}
@objc func runCut() {
}
@objc func runCopy() {
let text = webView.stringByEvaluatingJavaScript(from: "window.getSelection().toString();")
print(text ?? "")
}
@objc func runPaste() {
}
@objc func runPasteSearch() {
}
@objc func runLook() {
}
}