Cocoa应用程序如何支持底线文本输入?

时间:2010-01-27 17:55:28

标签: macos

我正在尝试使用底线输入在Leopard上的Cocoa应用程序中支持国际输入(一种输入方法,用户在一个小窗口中输入文本,称为浮动输入窗口,出现在底部附近屏幕)。

我不想支持内联输入。

当用户使用输入菜单更改输入法时,当用户在我的应用程序中键入文本时,我看不到标准的浮动输入窗口。任何人都知道我的应用程序需要做什么才能获得此输入窗口?

感谢。

1 个答案:

答案 0 :(得分:1)

据我所知(如果我错了,请纠正我),在Cocoa中没有支持底线输入窗口的中间立场。支持输入方法的主要方法是实现NSTextInputClient协议,该协议实现内联编辑。有一个很好的sample code可用如何实现它。

在Carbon时代,您的选择是碳事件

  • kEventTextInputUpdateActiveInputArea用于内联输入,或
  • kEventTextInputUnicodeForKeyEvent用于底部窗口输入。

Text Services Manager in Carbon。但是这些在64位Cocoa应用程序中不可用。对于32位Cocoa应用程序,您可以使用可怕的Carbon-Cocoa integration为后者安装处理程序。但这肯定比实施NSTextInputClient协议更复杂。

所以,我的建议是使用NSTextInputClient实现内联编辑。这将使许多东亚人高兴,包括我。