Text input
Editable text
A text renamed in place, as a file's name in Finder.
ui.EditableText shows a *string as a text that the user edits in place,
as a file's name in Finder: a double click on it, or Enter while it has the
focus, shows a text input of it, with the text before its extension
selected. Enter keeps what was typed, as moving the focus away does, and
Escape goes back; Changed reports a new value.
if ui.EditableText(c, &app.title).Changed() {
app.save()
}In lists and tables
In a list's or a table's rows, the list keeps the
focus and the text takes none: Return on macOS, and F2 elsewhere, edit the
text of the row chosen, while a double click on the row is Submitted; a
click on the text of a row already chosen edits it, once a second click
would no longer make a double click.
ui.Table(c, &app.files, cols, len(files), func(row, col int) {
if col == 0 && ui.EditableText(c, &files[row].Name).Changed() {
app.rename(files[row])
}
})Accessibility
Assistive technology reads the text, and the text field while it is edited.