【发布时间】:2017-03-15 06:12:19
【问题描述】:
UITextField 的 Select、SelectAll、Cut、Copy 功能默认显示,当我长按或双击 TextField 时。我不需要这所有的功能。请告诉我如何禁用长按或双击手势功能。
【问题讨论】:
UITextField 的 Select、SelectAll、Cut、Copy 功能默认显示,当我长按或双击 TextField 时。我不需要这所有的功能。请告诉我如何禁用长按或双击手势功能。
【问题讨论】:
以下代码将禁用这些选项:
您必须继承 UITextField 并尝试使用此代码来禁用/隐藏插入符号和输入(复制/粘贴)
override func caretRectForPosition(position: UITextPosition!) -> CGRect {
return CGRect.zeroRect
}
override func selectionRectsForRange(range: UITextRange) -> [AnyObject] {
return []
}
override func canPerformAction(action: Selector, withSender sender: AnyObject?) -> Bool {
// Disable copy, select all, paste
if action == Selector("copy:") || action == Selector("selectAll:") || action == Selector("paste:") {
return false
}
// Default
return super.canPerformAction(action, withSender: sender)
}
【讨论】:
这是 swift 3.0 的答案,
请试试这个,
override func canPerformAction(_ action: Selector, withSender sender: Any) -> Bool {
UIMenuController.shared.menuVisible = false
//do not display the menu
self.resignFirstResponder()
//do not allow the user to selected anything
return false
}
希望这会对你有所帮助。
【讨论】: