实现自动填充文本字段目标C.

use*_*097 5 objective-c uitextfield uitextview ios uitextfielddelegate

我开始使用text fields,我希望使用自定义自动完成功能实现功能.

在很多博客和答案中,实现它UITables以显示自动完成,但我不需要这个,我需要创建一个像iPhone一样的自动完成功能,其中显示了一个带有过滤器但只有我的数组字符的弹出窗口.

例如.

my_array = @{"apple","banana","pear","orange","berry"}
Run Code Online (Sandbox Code Playgroud)

当我输入"app"时,文本字段只需要显示"apple"但不完整的文本text field,应显示弹出的自动完成.

像这样的东西,但只有我的阵列.

在此输入图像描述

小智 5

您可以使用这些UITextFieldDelegate方法自己构建此行为(在您的实现中实现委托)UIView

@interface someViewController : UIViewController <UITextFieldDelegate> 
Run Code Online (Sandbox Code Playgroud)

在此过程中,您可以访问用户输入的内容

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
Run Code Online (Sandbox Code Playgroud)

您可以将其与数组中的项目进行比较,并显示另一个UIView或自定义按钮,选中该按钮时会填充文本字段.

不要忘记告诉你textfield的委托应该是谁,可能在你的viewDidLoad方法中,但也可以在xib视图中完成

myTextField.delegate = self;
Run Code Online (Sandbox Code Playgroud)

我知道这似乎很费劲,但会非常令人满意.下面是苹果文档UITextViewDelegate