# @ohos.inputMethodList (Input Method List)
The **inputMethodList** module is oriented to system applications and input method applications. It provides APIs for implementing an input method list. This list displays the default input method subtypes and third-party input methods. Users can use this list to switch from the default input method to another input method.
> **NOTE**
>
> The initial APIs of this module are supported since API version 11. Updates will be marked with a superscript to indicate their earliest API version.
## Modules to Import
```ts
import inputMethodL from '@ohos.inputMethodList';
```
## Child Components
Not supported
## Attributes
The [universal attributes](../arkui-ts/ts-universal-attributes-size.md) are not supported.
## InputMethodListDialog
InputMethodListDialog({controller: CustomDialogController, patternOptions?: PatternOptions})
Implements a dialog box showing the input method list.
**Decorator type**: @CustomDialog
**System capability**: SystemCapability.MiscServices.InputMethodFramework
**Parameters**
| Name| Type| Mandatory| Decorator| Description|
| -------- | -------- | -------- | -------- | -------- |
| controller | [CustomDialogController](../arkui-ts/ts-methods-custom-dialog-box.md) | Yes| - | Controller for the dialog box showing the input method list.|
| patternOptions | [PatternOptions](#patternoptions) | No| - | Input method pattern options (for the default input method only).|
## PatternOptions
**System capability**: SystemCapability.MiscServices.InputMethodFramework
| Name| Type| Readable| Writable| Description|
| -------- | -------- | -------- | -------- | -------- |
| defaultSelected11+ | number | Yes| Yes| Optional. Default selected pattern.|
| patterns11+ | Array<[Pattern](#pattern)> | Yes| Yes| Mandatory. Resource of the pattern option.|
| action9+ | function | Yes| Yes| Mandatory. Callback invoked when the pattern option changes.|
## Pattern
**System capability**: SystemCapability.MiscServices.InputMethodFramework
| Name| Type| Readable| Writable| Description|
| -------- | -------- | -------- | -------- | -------- |
| icon11+ | [Resource](../arkui-ts/ts-types.md#resource) | Yes| Yes| Mandatory. Default icon.|
| selectedIcon11+ | [Resource](../arkui-ts/ts-types.md#resource) | Yes| Yes| Mandatory. Icon for the selected option.|
## Events
The [universal events](../arkui-ts/ts-universal-events-click.md) are not supported.
## Example
```ts
import { InputMethodListDialog, Pattern, PatternOptions } from '@ohos.inputMethodList';
@Entry
// Configure the component.
@Component
export struct settingsItem {
@State defaultPattern: number = 1;
private oneHandAction: PatternOptions = {
defaultSelected: this.defaultPattern,
patterns: [
{
icon: $r('app.media.hand_icon'),
selectedIcon: $r('app.media.hand_icon_selected')
},
{
icon: $r('app.media.hand_icon1'),
selectedIcon: $r('app.media.hand_icon_selected1')
},
{
icon: $r('app.media.hand_icon2'),
selectedIcon: $r('app.media.hand_icon_selected2'),
}],
action:(index: number)=>{
console.info(`pattern is changed, current is ${index}`);
this.defaultPattern = index;
}
};
private listController: CustomDialogController = new CustomDialogController({
builder: InputMethodListDialog({ patternOptions: this.oneHandAction }),
customStyle: true,
maskColor: '#00000000'
});
build() {
Column() {
Flex({ direction: FlexDirection.Column,
alignItems: ItemAlign.Center, justifyContent: FlexAlign.Center }) {
Text("Input Method List").fontSize(20)
}
}
.width("13%")
.id('bindInputMethod')
.onClick((event?: ClickEvent) => {
this.listController.open();
})
}
}
```