Maurício Linhares
Maurício Linhares

Reputation: 40313

How can I hide an NSToolbarItem using code?

I have a toolbar with various options and some options should not be visible in some cases. I have already figured out a way to disable them in my application, using this callback:

  - (BOOL) validateToolbarItem: (NSToolbarItem *) toolbarItem

But I haven't figured out a way to really hide them when I need. Anyone has any ideas on how to do this or if it's really possible at all?

Upvotes: 7

Views: 4267

Answers (4)

tipa
tipa

Reputation: 437

It's now finally possible with macOS 15 - the NSToolbarItem class now has a hidden property: https://developer.apple.com/documentation/appkit/nstoolbaritem/4357352-hidden

Upvotes: 0

Ely
Ely

Reputation: 9121

Instead of endless adding and removing toolbar items in a single NSToolbar object to adjust the toolbar for a certain context, it is usually better to implement multiple NSToolbar instances, all with their own configuration for a certain context, and assign the applicable configuration to the toolbar property of the NSWindow.

Upvotes: 0

David
David

Reputation: 7303

If disabling them is not enough you could remove the items.

[myToolbar removeItemAtIndex:itemIndex];

Then when you need to put them back, just re-insert them:

[myToolbar insertItemWithItemIdentifier:itemIdentifier atIndex:itemIndex];

Look at Adding and Removing Toolbar Items in the Apple docs.

Upvotes: 13

Seva Alekseyev
Seva Alekseyev

Reputation: 61341

No built-in visibility property for buttons. Remove it from the toolbar and re-add when needed.

Upvotes: 1

Related Questions