Thanks both. These separate issues are both are fixed for the next release:
https://feedback.objo.dev/bug/824
https://feedback.objo.dev/bug/823
Toolbar.ItemAt() and Toolbar.FindItem() return a ToolbarItem. Although Text, Enabled, and Tooltip existed at runtime, they were declared only on ToolbarActionItem. That meant Studio’s code completion correctly (but unhelpfully) showed only the base properties.
These common properties are now available directly on ToolbarItem, so no cast is required:
Self.Toolbar.ItemAt(0).Text = "Add"
Self.Toolbar.FindItem("RemoveButton").Text = "Remove"
Self.Toolbar.FindItem("RemoveButton").Tooltip = "Remove this item"
Self.Toolbar.FindItem("RemoveButton").Enabled = True
Using FindItem() with the item’s name is generally preferable to relying on its index, particularly if the toolbar’s contents might change.
I’ve also corrected the vertical alignment of toolbar buttons containing both an icon and text. The combined icon-and-label content is now optically centred within the toolbar. The correction covers standard, toggle, menu, and split toolbar buttons without affecting text-only or icon-only buttons.