setVoiceJoinedState / setShareScreenButton updated only the inner NSButton's title+image, but the text shown beneath a custom-view NSToolbarItem comes from the item's label, not the button's title -- so the toolbar kept reading "Join Voice" / "Share Screen Audio" after joining. Hold references to the NSToolbarItems and update their label/paletteLabel alongside the button.