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

时间:2014-05-13 02:23:33

标签: ios objective-c uitextfield uitextview uitextfielddelegate

我开始使用text fields,我希望使用自定义自动填充功能实现功能。

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

例如。

my_array = @{"apple","banana","pear","orange","berry"}

当我输入“app”时,文字字段只需要显示“apple”但不完整text field中的文字,应显示弹出的自动填充功能。

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

enter image description here

2 个答案:

答案 0 :(得分:5)

您可以使用UITextFieldDelegate方法自行构建此行为 (在UIView

中实施委托
@interface someViewController : UIViewController <UITextFieldDelegate> 

执行此操作即可访问用户在

中输入的内容
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string

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

请勿忘记告诉您的textfield代理人应该是谁,可能在您的viewDidLoad方法中,但也可以在xib视图中完成

myTextField.delegate = self;

我知道这似乎很费劲,但会非常令人满意。 这是UITextViewDelegate

apple doc

答案 1 :(得分:1)

我几天前实现了自定义自动完成文本字段,而raywenderlich教程很有帮助。

http://www.raywenderlich.com/336/auto-complete-tutorial-for-ios-how-to-auto-complete-with-custom-values

您可能需要实现自己的表格视图,使其看起来像您附加的屏幕。简短的教程将让您了解应该如何完成。如果你愿意,我明天会发布我的代码。