***** 修改
针对 UITextField , UIWebView 系统自带 在选择一段文字后 ,有 “拷贝”,“选择”,“分享” 等 菜单, 现在要修改
例如 : UITextField
func myMenu() {
print(textField.text(in: textField.selectedTextRange!))
/* 如果是webView
webView.evaluateJavaScript("getSelection().toString()", completionHandler: { (result, error) in
if result != nil {
print("selecter:"+(result as! String) );
} else {
}
})
*/
}
var textField:UITextField!;
override func viewDidLoad() {
super.viewDidLoad()
textField = UITextField(frame: CGRect(x: 20, y: 80, width: 100, height: 80));
textField.text = "sdfassdf sdf sdf sdf s dfs f sd fds";
self.view.addSubview(textField)
//
let menuItem1 = UIMenuItem(title: "我的菜单", action: #selector(myMenu))
UIMenuController.shared.menuItems = [menuItem1]
}
效果
** ****** 创建
//这句很重要, 弹出UIMenuController.shared 即便没有输入焦点也可以显示
override var canBecomeFirstResponder: Bool{
return true;
}
func showLongPress(sender:UILongPressGestureRecognizer){
self.view.becomeFirstResponder()
let menuController = UIMenuController.shared
let item1 = UIMenuItem(title: "测试1", action: #selector(test))
let item2 = UIMenuItem(title: "测试2", action: #selector(test))
menuController.menuItems = [item1, item2]
menuController.setTargetRect(self.view.bounds, in: self.view!)//其中in:要显示在哪个视图上面/下面
menuController.setMenuVisible(true, animated: true)
}