测试测试 | ✗ |
Lang语言 | Obj-CObjective C |
许可 | MIT |
Released最新版本 | 2015年9月 |
由 alexruperez 维护。
ARAutocompleteTextView 是 UITextView 的子类,能够自动显示实时文本建议。这非常适合在用户边输入电子邮件地址、#标签或@处理程序时自动建议域名。
ARAutocompleteTextView.m
ARAutocompleteTextView.h
ARAutocompleteManager.m
ARAutocompleteManager.h
创建一个 ARAutocompleteTextView
实例,就像创建 UITextView
一样。您可以通过编程方式或使用 Interface Builder 完成。以编程方式,代码如下所示
ARAutocompleteTextView* textField = [[ARAutocompleteTextView alloc] initWithFrame:CGRectMake(0,0,100,31)];
数据源是自动完成逻辑的大脑。如果您只想自动完成电子邮件地址、#标签或@处理程序,请使用示例项目中的 ARAutocompleteManager
,如下所示
textField.autocompleteDataSource = [ARAutocompleteManager sharedManager];
textField.autocompleteType = ARAutocompleteTypeEmail;
ARAutocompleteManager
(包含在示例项目中)提供了内置的电子邮件地址自动完成。它包含顶级电子邮件域名列表。您可能想根据自己的客户定制电子邮件域名列表,或者您可能需要编写适用于不同类型文本视图的自动完成逻辑(在演示中,自动完成颜色名称)。
您还可以创建自己的数据源类,并使用 autocompleteType
属性区分具有不同数据类型的文本视图。ARAutocompleteTextView
的数据源必须实现以下方法,作为 ARAutocompleteDataSource
协议的一部分。
- (NSString *)textField:(ARAutocompleteTextView*)textField completionForPrefix:(NSString *)prefix
您还可以为所有 ARAutocompleteTextView
实例设置一个默认的 dataSource
。在示例项目中,我们使用一个 ARAutocompleteManager
单例
[autocompleteTextOffset setDefaultAutocompleteDataSource:[ARAutocompleteManager sharedManager]];
要通过固定金额调整自动完成标签的位置,设置 autocompleteTextOffset
textField.autocompleteTextOffset = CGPointMake(10.0, 10.0);
为了动态定位自动完成标签,可以将ARAutocompleteTextView
进行子类化,并重写- (CGRect)autocompleteRectForBounds:(CGRect)bounds
方法。
要调整自动完成标签的属性(例如font
、textColor
),可以通过使用`[AutocompleteTextField autocompleteLabel]`属性来完成。
textField.autocompleteLabel.textColor = [UIColor grayColor];
除了观察标准的UITextView
通知(例如UITextViewTextDidChangeNotification
及其相关通知)之外,您还可以使用[ARAutocompleteTextView autoCompleteTextFieldDelegate]
来监听某些事件。如果您正在收集分析数据,这将特别有用。
给作者@alexruperez发送推文,并查看alexruperez的博客:http://alexruperez.com