ComboBox
_A hybrid input element that combines a text input field with a dropdown list. Users can either type directly or select from predefined options. _ Supports auto-completion, custom styling, and both single and multi-selection modes.
Extends: DropDown
Usage
lua
-- Create a searchable country selector
local combo = main:addComboBox()
:setPosition(5, 5)
:setSize(20, 1) -- Height will expand when opened
:setItems({
{text = "Germany"},
{text = "France"},
{text = "Spain"},
{text = "Italy"}
})
:setPlaceholder("Select country...")
:setAutoComplete(true) -- Enable filtering while typing
-- Handle selection changes
combo:onChange(function(self, value)
-- value will be the selected country
basalt.debug("Selected:", value)
end)Properties
| Property | Type | Default | Description |
|---|---|---|---|
| editable | boolean | true | Enables direct text input in the field |
| text | string | "" | The current text value of the input field |
| cursorPos | number | 1 | Current cursor position in the text input |
| viewOffset | number | 0 | Horizontal scroll position for viewing long text |
| placeholder | string | "..." | Text shown when the input is empty |
| placeholderColor | color | gray | Color used for placeholder text |
| autoComplete | boolean | false | Enables filtering dropdown items while typing |
| manuallyOpened | boolean | false | Indicates if dropdown was opened by user action |
Functions
| Method | Returns | Description |
|---|---|---|
| ComboBox.new | ComboBox | Creates a new ComboBox instance |
| ComboBox:char | - | Handles character input |
| ComboBox:key | - | Handles key input |
ComboBox.new()
Creates a new ComboBox instance
Returns
ComboBoxselfThe newly created ComboBox instance
ComboBox:char(char)
Handles character input when editable
Parameters
charstringThe character that was typed
ComboBox:key(key, held)
Handles key input when editable
Parameters
keynumberThe key code that was pressedheldbooleanWhether the key is being held