首页 > 解决方案 > 如何在 iOS 中捕获关键条目的代码或文本?

问题描述

我不熟悉 iOS 和 Objective-C,我需要找到一种方法来捕获用户在输入字段中的键输入。

我正在寻找类似Android 的 onKeyUpand的东西onKeyDown,其中KeyEvent.Callback.onKeyDownonKeyUp提供了int keyCode和 a KeyEvent event

或者类似于 web 开发中的keydownandkeyup 事件侦听器,其中回调获取一个event包含event.codeand的对象event.keyCode

在 iOS 中解决这个问题的最简单方法是什么?

标签: iosobjective-c

解决方案


有两个主要的视图用于在 iOS 上捕获文本输入:UITextFieldUITextView. 每个都有一个相应的委托来通知输入更改。

UITextFieldDelegate

UITextField有一个符合UITextFieldDelegate您的委托,可用于获取输入更改的通知。具体来说,您将要实现此方法:

func textField(_:shouldChangeCharactersIn:replacementString:) -> Bool 

每次输入更改时都会调用此方法。它提供一系列字符的原因是因为用户可以执行诸如剪切或粘贴之类的操作来一次更改多个字符。您还可以看到此方法返回一个布尔值。您可以通过返回接受文本输入,true并且可以通过返回拒绝更改false

UITextViewDelegate

UITextView的委托符合UITextViewDelegate. 你会想要实现这个方法:

func textView(_:shouldChangeTextIn:replacementText:) -> Bool

这应该与UITextFieldDelegate.

如果您只想知道文本已更改但不需要有关确切更改的详细信息,则可以实现此方法:

func textViewDidChange(_:)

推荐阅读