我不知道如何在NSMenu中设置NSMenuItems的字体/样式。我在NSMenu上尝试了setFont方法,但它似乎对菜单项没有任何影响。NSMenuItem似乎没有setFont方法。我希望它们都有相同的字体/样式,所以我希望只有一个属性可以在某个地方设置。
发布于 2012-11-20 01:35:55
它们可以有一个属性标题,因此您可以将属性字符串设置为标题,其中包含所有属性,包括字体:
NSMutableAttributedString* str =[[NSMutableAttributedString alloc]initWithString: @"Title"];
[str setAttributes: @{ NSFontAttributeName : [NSFont fontWithName: @"myFont" size: 12.0] } range: NSMakeRange(0, [str length])];
[label setAttributedString: str];发布于 2012-11-20 01:34:08
NSMenuItem支持将属性字符串作为标题:
- (void)setAttributedTitle:(NSAttributedString *)string;示例代码:
NSMenuItem *menuItem = [[NSMenuItem alloc] initWithTitle:@"Hi, how are you?" action:nil keyEquivalent:@""];
NSDictionary *attributes = @{
NSFontAttributeName: [NSFont fontWithName:@"Comic Sans MS" size:19.0],
NSForegroundColorAttributeName: [NSColor greenColor]
};
NSAttributedString *attributedTitle = [[NSAttributedString alloc] initWithString:[menuItem title] attributes:attributes];
[menuItem setAttributedTitle:attributedTitle];发布于 2015-10-03 09:24:12
来自NSFont的+ menuBarFontOfSize:是你的朋友。
[NSFont menuBarFontOfSize:12]获取默认字体并设置新的大小。如果仅更改颜色,则仍需要通过执行[NSFont menuBarFontOfSize:0].操作重新设置默认字体大小
因此,只需更改NSMenuItem颜色:
NSDictionary *attributes = @{
NSFontAttributeName: [NSFont menuBarFontOfSize:0],
NSForegroundColorAttributeName: [NSColor greenColor]
};
NSAttributedString *attributedTitle = [[NSAttributedString alloc] initWithString:[menuItem title] attributes:attributes];
[menuItem setAttributedTitle:attributedTitle];https://stackoverflow.com/questions/13458963
复制相似问题