# Key Listener (ref)

(part of package '[Key Listener](https://docs.servoy.com/reference/servoyextensions/packages/browser-plugin-packages/key-listener)')

You can access it in code via: **plugins.keyListener**

A Servoy Extra Component that handles keyboard events and provides key listener functionality.

## Properties

## API

### addKeyListener(callbackKey,callback,clearCB,delay,regexPattern,regexReplacement)

Registers the listener on the components which have the "keylistener" attribute with the given callbackKey value, to call the given callback when a key is pressed.

**Example:**

```js
plugins.keyListener.addKeyListener('test', onKey)
```

**Parameters:**

> * {[String](https://docs.servoy.com/reference/servoycore/dev-api/js-lib/string)} callbackKey The key for which the listener will be added. This key has to match value of "keylistener" attribute in component.
> * {[Function](https://docs.servoy.com/servoy-developer/component_and_service_property_types#function)} callback The callback function to be called when a key is pressed.
> * {[Boolean](https://docs.servoy.com/reference/servoycore/dev-api/js-lib/boolean)} \[clearCB] If true a removeKeyListener will be called for this key before adding the new one. Default value is false.
> * {[Number](https://docs.servoy.com/reference/servoycore/dev-api/js-lib/number)} \[delay] Number of milliseconds to wait before callback method is called. Default value is 1000.
> * {[String](https://docs.servoy.com/reference/servoycore/dev-api/js-lib/string)} \[regexPattern] Javascript regular expression string to modify current value of the component.
> * {[String](https://docs.servoy.com/reference/servoycore/dev-api/js-lib/string)} \[regexReplacement] The value that is used to replace the regular expression with in the current value of the component.

***

### removeKeyListener(callbackKey)

Removes the listener associated to the given callback key. Returns true if the listener was removed.

**Example:**

```js
plugins.keyListener.removeKeyListener('test')
```

**Parameters:**

> * {[String](https://docs.servoy.com/reference/servoycore/dev-api/js-lib/string)} callbackKey The key listener to remove.

**Returns:** [Boolean](https://docs.servoy.com/reference/servoycore/dev-api/js-lib/boolean) Succes of removal

***

## Types

## callback

Represents a key listener callback configuration. scripting type: CustomType\<keyListener.callback>

* callback
  * The callback function that will be executed when the key event occurs.
  * **Type**: [function](https://docs.servoy.com/servoy-developer/component_and_service_property_types#function)
* callbackKey
  * The key identifier for the callback. This should match the "keylistener" attribute value in the component.
  * **Type**: [string](https://docs.servoy.com/reference/servoycore/dev-api/js-lib/string)
* delay
  * The delay in milliseconds before the callback is executed after the key event.
  * **Type**: [int](https://docs.servoy.com/reference/servoycore/dev-api/js-lib/number)
* isRunning
  * Indicates whether the callback is currently running.
  * **Type**: [int](https://docs.servoy.com/reference/servoycore/dev-api/js-lib/number)
* regexPattern
  * A JavaScript regular expression string used to modify the current value of the component.
  * **Type**: [string](https://docs.servoy.com/reference/servoycore/dev-api/js-lib/string)
* regexReplacement
  * The string used to replace the parts of the component's value that match the regexPattern.
  * **Type**: [string](https://docs.servoy.com/reference/servoycore/dev-api/js-lib/string)

***
