<!--
{
  "availability" : [
    "macOS: 10.5.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "InputMethodKit",
  "identifier" : "/documentation/InputMethodKit/IMKStateSetting",
  "metadataVersion" : "0.1.0",
  "role" : "Protocol",
  "symbol" : {
    "kind" : "Protocol",
    "modules" : [
      "InputMethodKit"
    ],
    "preciseIdentifier" : "c:objc(pl)IMKStateSetting"
  },
  "title" : "IMKStateSetting"
}
-->

# IMKStateSetting

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

```
protocol IMKStateSetting
```

## Topics

### Activating and Deactivating the Server

[`activateServer(_:)`](/documentation/InputMethodKit/IMKStateSetting/activateServer(_:))

Activates the input method server.

[`deactivateServer(_:)`](/documentation/InputMethodKit/IMKStateSetting/deactivateServer(_:))

Deactivates the input method server.

### Showing a Preferences Window

[`showPreferences(_:)`](/documentation/InputMethodKit/IMKStateSetting/showPreferences(_:))

Displays a preferences window.

### Getting the Supported Events

[`recognizedEvents(_:)`](/documentation/InputMethodKit/IMKStateSetting/recognizedEvents(_:))

Returns an unsigned integer that contains a union of event masks

### Getting the Mode Dictionary

[`modes(_:)`](/documentation/InputMethodKit/IMKStateSetting/modes(_:))

Returns the modes dictionary associated with the input method.

### Getting and Setting Values

[`value(forTag:client:)`](/documentation/InputMethodKit/IMKStateSetting/value(forTag:client:))

Returns a value object whose key is the provided tag.

[`setValue(_:forTag:client:)`](/documentation/InputMethodKit/IMKStateSetting/setValue(_:forTag:client:))

Set the value for the provided key.



---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)