Text Services Manager(TSM)为应用程序使用特定文本服务提供环境。这些特定的服务包括拼写检查、复杂文本的输入等。TSM解决了申请文本服务的客户程序与提供这些服务的文本服务组件之间的通信。TSM的存在使得这两种程序在不了解彼此内部结构的情况下就可以协同工作。
客户程序一般是文本处理程序,它使用TSM来向文本服务组件申请服务。为了达到这一目的,客户程序在执行期间需要调用特定的TSM。
文本服务组件是通过TSM为应用程序提供文本服务的程序。文本服务组件经由组件管理器注册,能完成一些特殊的文本处理任务如拼写检查、连字符连接文本、复杂文本输入等。最流行的文本服务类型是那些解决复杂文本入口点的服务,比如输入法。
TSM在Mac os 10.3中引入了input mode。Input mode允许输入法暂时在一个脚本中接受文本输入。输入法使用CFDictionary 来定义它所支持的input mode,并用标签kTextServiceInputModePropertyTag来表明它支持input mode。应用程序通过调用CopyTextServiceInputModeList函数来得知输入法使用了何种input mode。
TSM定义了三种编程接口:
第一类函数由TSM实现并由文本服务组件的客户程序调用。
第二类函数由TSM实现并有文本服务组件调用。
第三类是由文本服务组件实现的底层函数,有应用程序或TSM调用。