ios - 如何在 iOS 中捕获关键条目的代码或文本?
问题描述
我不熟悉 iOS 和 Objective-C,我需要找到一种方法来捕获用户在输入字段中的键输入。
我正在寻找类似Android 的 onKeyUp
and的东西onKeyDown
,其中KeyEvent.Callback.onKeyDown
并onKeyUp
提供了int keyCode
和 a KeyEvent event
。
或者类似于 web 开发中的keydown
andkeyup
事件侦听器,其中回调获取一个event
包含event.code
and的对象event.keyCode
。
在 iOS 中解决这个问题的最简单方法是什么?
解决方案
有两个主要的视图用于在 iOS 上捕获文本输入:UITextField
和UITextView
. 每个都有一个相应的委托来通知输入更改。
UITextFieldDelegate
UITextField
有一个符合UITextFieldDelegate
您的委托,可用于获取输入更改的通知。具体来说,您将要实现此方法:
func textField(_:shouldChangeCharactersIn:replacementString:) -> Bool
每次输入更改时都会调用此方法。它提供一系列字符的原因是因为用户可以执行诸如剪切或粘贴之类的操作来一次更改多个字符。您还可以看到此方法返回一个布尔值。您可以通过返回接受文本输入,true
并且可以通过返回拒绝更改false
。
UITextViewDelegate
UITextView
的委托符合UITextViewDelegate
. 你会想要实现这个方法:
func textView(_:shouldChangeTextIn:replacementText:) -> Bool
这应该与UITextFieldDelegate
.
如果您只想知道文本已更改但不需要有关确切更改的详细信息,则可以实现此方法:
func textViewDidChange(_:)