Hi, > Am 20.09.2024 um 19:20 schrieb Sebastian Reitenbach > <[email protected]>: > > Hi, > > I've a NSPopUpButton with some items. Some of them I want just to be disabled. > To do so, I thought I can just get away with: > > [[self.popupButton itemWithTitle: @"Item 2"] setEnabled: NO]; > > but that is not the case. > > Is that supposted to work that way, if at all? If so, any hint what I'm doing > wrong?
I think (based on Cocoa experience) you must implement some validateMenuItem: or similar method for the target of the popup button. So that it can return YES or NO on demand. To make it dynamical I think the validateMenuItem: is passed the item in discussion and you can make decisions based on e.g. [item action] or [item title] (not recommended) or [item representedValue]. This is a little similar to the dataSource of an NSTableView. You never set values directly in the NSTableView but it asks some other object to provide them but only on demand by whatever algorithm fits. This is called when a users opens the menus and depending on the result the setEnabled: is called automatically (and overwrites your changes). BR, Nikolaus
