---
title: IMKServer
framework: InputMethodKit
role: symbol
role_heading: Class
platforms: [macOS 10.5+]
path: inputmethodkit/imkserver
---

# IMKServer

The IMKServer class manages client connections to your input method.  When you write the main function for your input method, you create an IMKServer object.  You should never need to override this class.

## Declaration

```swift
class IMKServer
```

## Topics

### Initializing a Server Object

- [init(name:bundleIdentifier:)](inputmethodkit/imkserver/init(name:bundleidentifier:).md)
- [init(name:controllerClass:delegateClass:)](inputmethodkit/imkserver/init(name:controllerclass:delegateclass:).md)

### Getting a Bundle for the Input Method

- [bundle()](inputmethodkit/imkserver/bundle().md)

### Instance Methods

- [lastKeyEventWasDeadKey()](inputmethodkit/imkserver/lastkeyeventwasdeadkey().md)
- [paletteWillTerminate()](inputmethodkit/imkserver/palettewillterminate().md)

## Relationships

### Inherits From

- [NSObject](objectivec/nsobject-swift.class.md)

### Conforms To

- [CVarArg](swift/cvararg.md)
- [CustomDebugStringConvertible](swift/customdebugstringconvertible.md)
- [CustomStringConvertible](swift/customstringconvertible.md)
- [Equatable](swift/equatable.md)
- [Hashable](swift/hashable.md)
- [NSObjectProtocol](objectivec/nsobjectprotocol.md)

## See Also

### Classes

- [IMKCandidates](inputmethodkit/imkcandidates.md)
- [IMKInputController](inputmethodkit/imkinputcontroller.md)
