CLTokenInputView 2.3.0

CLTokenInputView 2.3.0

测试已测试
语言语言 Obj-CObjective C
许可证 MIT
发布最后发布2016年3月

Rizwan Sattar维护。



Image Screencap GFY

关于

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。

我想做的事情

  • 构建类似 Mail.app 中的“折叠”模式,用“[第一项] 和更多 N 项”替换令牌 UI。
  • 在停止输入约 150 毫秒后调用搜索。
  • 在输入后滚动文本字段到指定位置。
  • (也许?)考虑添加一个非常通用、灵活的自动完成 UI?

安装

或者,您可以从 CLTokenInputView/CLTokenInputView 中获取所有 .h 和 .m 文件。

作者

Cluster Labs, Inc.,[email protected]

许可证

CLTokenInputView 以 MIT 许可证提供。有关更多信息,请参阅 LICENSE 文件。