【发布时间】:2021-07-06 17:49:15
【问题描述】:
每当我在uitextfield 中输入任何文本并长按该文本并选择delete 时,它就会崩溃。崩溃时显示“Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[App_Name.HomeVC delete:]: unrecognized selector sent to instance 0x14e18ba00'”。我该如何解决这个崩溃问题。下面是快速代码。
class HomeVC: UIViewController{
@IBOutlet weak var txtSearch: UITextField!
override func viewDidLoad() {
super.viewDidLoad()
self.txtSearch.addTarget(self, action: #selector(self.txtChanged(_:)), for: .editingChanged)
@objc func txtChanged(_ sender : UITextField){
print(txtSearch.text!)}
}
override public func canPerformAction(_ action: Selector, withSender sender: Any?) -> Bool {
if action == #selector(copy(_:)) || action == #selector(paste(_:)) || action == #selector(delete(_:)) || action == #selector(cut(_:))
{
return true
} else if action == Selector(("_lookup:")) || action == Selector(("_share:")) || action == Selector(("_define:")) {
return false
}
return super.canPerformAction(action, withSender: sender)
}
}
【问题讨论】:
-
有一个错误的} at : print(txtSearch.text!)} ?这只是一个错字吗?
-
@PtitXav 这只是一个错字,主要问题是删除
-
您返回
true表示您的视图控制器可以处理delete操作,但是您的视图控制器没有实现delete函数,因此您会崩溃。跨度> -
@Paulw11 那么解决这个问题的解决方案是什么?
-
如果您编写了视图控制器可以执行某些操作的代码,则您必须在视图控制器中添加相应的代码,即功能删除,...为此您返回 true。
标签: ios swift uitextfield