CLTokenInputView
几乎是iOS原生联系人选择器输入部分的像素完美复制品,用于在Mail.app和Messages.app中编写新消息时。
查看使用CLTokenInputView的示例视图控制器,了解如何将其集成到UI中。我们在这个应用中使用这个功能,在Cluster Labs, Inc.。
它不提供自动完成下拉菜单和匹配;您必须自己提供这些,以便CLTokenInputView
可以保持非常通用和灵活。您可以复制示例应用所做的事情,以展示自动完成表视图并维护所选“标记”的列表。
要运行示例项目,请克隆仓库,并打开Xcode项目。您应该在iOS 7及以上版本上使用此功能。
要使用此功能,应在您的视图层次结构中添加一个CLTokenInputView
实例。通常它应该锚定在UI顶部和两侧。使用Autolayout,CLTokenInputView
可以自动增长,但如果您需要手动控制它,可以使用代理。
您应该实现以下内容:
- (void)tokenInputView:(CLTokenInputView *)view didChangeText:(NSString *)text
{
// Update your autocompletion table results with the text
}
当用户在自动完成项中点击时,应在标记输入视图中调用:-addToken:
。示例
NSString *name = self.filteredNames[indexPath.row];
CLToken *token = [[CLToken alloc] initWithDisplayText:name context:nil];
[self.tokenInputView addToken:token];
务必监听以下事件:
- (void)tokenInputView:(CLTokenInputView *)view didAddToken:(CLToken *)token;
- (void)tokenInputView:(CLTokenInputView *)view didRemoveToken:(CLToken *)token;
...并更新您的本地选择项目数据模型。
最后,您可以实现以下内容:
- (CLToken *)tokenInputView:(CLTokenInputView *)view tokenForText:(NSString *)text
{
// Return a CLToken instance that matches the text that has been entered.
// Return nil if nothing matches
}
...这样用户通常可以选中自动完成的第一项。
可以使用以下属性来定制CLTokenInputView
:
tintColor
— 调整选择和文本颜色。fieldView
— (可选)显示在标记左上角的视图。fieldName
— (可选,但推荐)在标记列表之前显示的文本(例如,“至:”)placeholderText
— (可选,但推荐)作为文本字段提示的文本。accessoryView
— (可选)显示在右上角的视图。(通常用于启动联系人选择器,如Mail.app中)。keyboardType
— 调整键盘类型(UIKeyboardType
)。autocapitalizationType
—— 调整大写行为(UITextAutocapitalizationType
)。autocorrectionType
—— 调整自动更正行为 (UITextAutocorrectionType
)。drawBottomBorder
—— 如果 CLTokenInputView 应该在其下方绘制原生风格的边框,则设置为 YES。或者,您可以从 CLTokenInputView/CLTokenInputView
中获取所有 .h 和 .m 文件。
Cluster Labs, Inc.,[email protected]
CLTokenInputView 以 MIT 许可证提供。有关更多信息,请参阅 LICENSE 文件。