diff --git a/crates/bevy_text/src/text_editable.rs b/crates/bevy_text/src/text_editable.rs index baefbce0e17b9..be8fca9e86850 100644 --- a/crates/bevy_text/src/text_editable.rs +++ b/crates/bevy_text/src/text_editable.rs @@ -146,6 +146,15 @@ impl Default for EditableText { } impl EditableText { + /// Creates a new `EditableText` with its buffer already containing some initial text and + /// its cursor positioned at the end. + pub fn new(initial_text: impl AsRef) -> Self { + let mut editable_text = Self::default(); + editable_text.editor.set_text(initial_text.as_ref()); + editable_text.queue_edit(TextEdit::TextEnd(false)); + editable_text + } + /// Access the internal [`PlainEditor`]. pub fn editor(&self) -> &PlainEditor { &self.editor diff --git a/examples/ui/text/multiple_text_inputs.rs b/examples/ui/text/multiple_text_inputs.rs index 80a0e39101e89..2100858024b8e 100644 --- a/examples/ui/text/multiple_text_inputs.rs +++ b/examples/ui/text/multiple_text_inputs.rs @@ -97,7 +97,7 @@ fn setup(mut commands: Commands, asset_server: Res) { padding: px(4.).all(), ..default() }, - EditableText::default(), + EditableText::new(format!("Initial text {row}")), TextCursorStyle::default(), font.clone(), BackgroundColor(bevy::color::palettes::css::DARK_GREY.into()),