一旦用户完成编辑并在屏幕上的其他地方点击,我想在我的UITextView上执行一些处理。最好的做法是什么?
我几乎成功地用func textViewDidEndEditing(textView: UITextView)实现了想要的效果,但是只有当用户点击键盘上的“Enter”键(人们很少这样做--他们只需点击屏幕上的其他地方就可以提交更改)时才能运行。
func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?)的问题是,它不在乎是否编辑了UITextView。
发布于 2016-05-18 02:07:35
我认为您可以在包含textView的视图上添加一个textView。在UITapGestureRecognizer的选择器中,可以添加处理过程的逻辑代码。您可以检查textView文本的长度以确定是否编辑了UITextView。下面是一些示例代码:
override func viewDidLoad() {
super.viewDidLoad()
let tapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(handleTap))
view.addGestureRecognizer(tapGestureRecognizer)
}
func handleTap() {
let text = textView.text
textView.resignFirstResponder() // loosing focus
if text.characters.count > 0 {
// textView edited
} else {
// textView not edited
}
}https://stackoverflow.com/questions/37288897
复制相似问题