Mac Developer Library


InputMethodKit Framework Reference

The Input Method Kit Reference Collection

Classes   Protocols  

The Input Method Kit, introduced in OS X v10.5, provides a streamlined programming interface that lets you develop input methods with far less code than older Mac programming interfaces. It is fully integrated with the Text Services Manager. The Input Method Kit allows 32-bit applications to work with 64-bit applications.

The Input Method Kit provides classes and protocols for managing communication with client applications, candidates windows, and input method modes. Input methods supply text from a conversion engine (written in any language, such as C, C++, Objective-C, Python, and so on), key bindings and optional event handling, and information about your input method in an extended Info.plist file. You also have the option to provide menu items that support input-method-specific commands or preferences settings.



NSObject is the root class of most Objective-C class hierarchies.


The IMKInputController class provides a base class for custom input controller classes.


The IMKServer class manages client connections to your input method.


NSResponder is an abstract class that forms the basis of event and command processing in the Application Kit.


The IMKCandidates class presents candidates to users and notifies the appropriate IMKInputController object when the user selects a candidate.



The IMKMouseHandling protocol defines methods that your input method can implement to handle mouse events.


IMKServerInput is an informal protocol that defines methods for receiving text events.


The IMKStateSetting protocol defines methods for setting or accessing values that indicate the state of an input method.


The IMKTextInput protocol defines methods for communicating with client input sessions.