SZMentionsSwift是一个轻量级的iOS提及库。这个库是为了辅助在textview中添加、删除和编辑提及而构建的。
它能做什么
添加提及
您可以通过输入触发词(默认为@)后跟文本来轻松添加提及,以过滤列表。点击姓名会将提及插入到textView中。
插入提及
任何插入在其它提及之前的文本(包括提及),都会自动调整所有现有提及的range。
删除提及
如果在现有提及中任何一点更改文本,该提及将从提及数组中删除,并且与该提及相关的任何剩余文本将恢复为默认样式。
有关更多使用技术细节,您可以在这里查看。
如何开始使用
- 下载SZMentionsSwift 并尝试使用iOS示例应用程序。
通讯
- 如果你需要帮助,请随意 tweet @StevenZweier
- 如果您找到错误、有功能请求或一般问题,可以提出问题。
- 如果您想做出贡献,提交 pull 请求。
使用 Carthage 安装
Cartfile
要使用 CocoaPods 将 SZMentionsSwift 集成到您的 Xcode 项目中,请在您的 Cartfile
中指定它
github "szweier/SZMentionsSwift"
然后,运行以下命令
$ carthage update
使用 CocoaPods 安装
Podfile
要将 SZMentionsSwift 集成到 Xcode 项目中,并使用 CocoaPods,请在您的 Podfile
中指定它。
source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '8.0'
pod 'SZMentionsSwift'
然后,运行以下命令
$ pod install
用法
以下是本库中使用对象的快速浏览,但始终最佳的做法是通过示例代码来理解 SZMentionsSwift 库当前实现的用法。
MentionsSwiftListener
此类管理提及其他操作。
设置
使用许多初始化器之一来设置 mentions 听众。以下解释参数:
mentionsTextView
: 必需的 应用 mentions 听众的文本视图。注意:其代表 必须 是 mentions 管理员的。
delegate
: 可选的 如果您希望接收 UITextView 代理方法,请设置此属性,并在处理 mentions 听众之后传递。
mentionTextAttributes
: 应用到所有提及的文本的属性(见:AttributeContainer
)
defaultTextAttributes
: 应用到不由提及组成的所有文本的属性(见:AttributeContainer
)
spaceAfterMention
: 可选的 是否想在您的提及后添加空格。默认是 NO
trigger
: 用于启动提及的字符串。默认是 @
cooldownInterval
: 可选的 在调用 showMentionsList 之间等待的时间。默认是 0.5
searchSpaces
: 可选的 提及搜索是否可以包含空格
hideMentions
: 必需的 当要隐藏 mentions 视图时运行的代码块
didHandleMentionOnReturn
: 必需的 当在编辑提及时按 enter 时运行的代码块。使用此代码块可执行以下操作:- 1. 添加提及并返回 true 以表示提及在您的端被处理(这将通知听众隐藏视图)- 2. 返回 false 以表示提及 NOT 被处理(这将允许听众输入换行符)
showMentionsListWithString
: 必需的 当要显示 mentions 列表时运行的代码块
属性
mentions
: 只读 当前应用在文本视图上的所有提及的数组。
方法
public func reset()
: 调用此方法可将textview的文本重置为空字符串,并删除任何存在的提及。
@discardableResult public func addMention(_ mention: CreateMention) -> Bool
: 添加提及时调用此方法将提及应用于当前文本。
public func insertExistingMentions(_ existingMentions: [CreateMention])
: 在现有的文本视图中插入提及。这假设你得到了一个文本和该文本中提及的用户列表,并希望在预先准备textview。
CreateMention (协议)
此协议包含了需要发送到提及监听器的提及所需属性。
AttributeContainer (协议)
此协议包含了应用于格式化文本的属性所需属性。
提及
此结构体是通过mentions
方法返回的,它包括提及的范围
以及包含通过addMention(_ mention: CreateMention)
方法发送到提及监听器的对象的对象
。
单元测试
SZMentionsSwift 包括单元测试,可以在 SZMentionsSwift 框架上运行。
致谢
首次创建 SZMentionsSwift 的是 Steven Zweier