Minor improvement on the code below, when title is equal to plainTitle we can set attributedTitle to nil.

This restores proper rendering of disabled items.

Finder should be able to do the same, as when its dynamic menu items are disabled, they would normally not contain the dynamic part (info about selected items).


On 20 Sep 2016, at 9:37, Allan Odgaard wrote:

Thanks, I’ll switch to using this category method for setting dynamic titles:

- (void)setDynamicTitle:(NSString*)plainTitle
{
if(self.userKeyEquivalent && ![self.userKeyEquivalent isEqualToString:@""])
        {
                NSString* title = plainTitle;
                plainTitle = self.title;

                NSFont* font = self.menu.font ?: [NSFont menuFontOfSize:0];
self.attributedTitle = [[NSAttributedString alloc] initWithString:title attributes:@{ NSFontAttributeName : font }];
        }
        self.title = plainTitle;
}
_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to