如何在 Swift iOS 中禁用 UITextField 双击或长按? [复制]
Posted
技术标签:
【中文标题】如何在 Swift iOS 中禁用 UITextField 双击或长按? [复制]【英文标题】:How to disable UITextField double tap or long press in Swift iOS? [duplicate] 【发布时间】:2017-03-15 06:12:19 【问题描述】:UITextField 的 Select、SelectAll、Cut、Copy 功能默认显示,当我长按或双击 TextField 时。我不需要这所有的功能。请告诉我如何禁用长按或双击手势功能。
【问题讨论】:
请参考:***.com/questions/6701019/… 【参考方案1】:以下代码将禁用这些选项:
您必须继承 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)
【讨论】:
【参考方案2】:这是 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
希望这会对你有所帮助。
【讨论】:
以上是关于如何在 Swift iOS 中禁用 UITextField 双击或长按? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
禁用 UILabel、UIText 等的自动调整字体。在 iOS/Swift 中?
在 iOS 设置中更改通知时,Amazon SNS 如何禁用/重新启用设备?
如何在 iOS(Swift 3)上断开 Firebase 通知?