Foundation/NSMutableAttributedString.h
- (void)addAttribute:(NSString *)name
value:(id)value
range:(NSRange)aRange;
ここで設定する属性は、Application Kit の方の NSAttributedString Class ClusterAdditions ってドキュメントに記載がある。こんな感じの属性があるんだ。
AttributedStringDrawingView.m
- (void)drawRect:(NSRect)frameRect
{
NSMutableAttributedString* str =
[[NSMutableAttributedString alloc]
initWithString:@"How's about your Mac? It's fine!"];
NSPoint point = { 10, 10 };
// Set font attribute
[str addAttribute:NSFontAttributeName
value:[NSFont fontWithName:@"Chicago" size:36.0]
range:NSMakeRange(0,5)];
[str addAttribute:NSFontAttributeName
value:[NSFont fontWithName:@"Helvetica" size:24.0]
range:NSMakeRange(6,5)];
[str addAttribute:NSFontAttributeName
value:[NSFont fontWithName:@"Sand" size:12.0]
range:NSMakeRange(12,4)];
[str addAttribute:NSFontAttributeName
value:[NSFont fontWithName:@"Monaco" size:48.0]
range:NSMakeRange(17,4)];
[str addAttribute:NSFontAttributeName
value:[NSFont fontWithName:@"Apple Chancery" size:36.0]
range:NSMakeRange(22,4)];
[str addAttribute:NSFontAttributeName
value:[NSFont fontWithName:@"Times" size:48.0]
range:NSMakeRange(27,4)];
// Set underline style attribute
[str addAttribute:NSUnderlineStyleAttributeName
value:[NSNumber numberWithFloat:1.0]
range:NSMakeRange(0,2)];
[str addAttribute:NSUnderlineStyleAttributeName
value:[NSNumber numberWithFloat:2.0]
range:NSMakeRange(2,3)];
// Set foreground color attribute
[str addAttribute:NSForegroundColorAttributeName
value:[NSColor redColor]
range:NSMakeRange(6,5)];
[str addAttribute:NSForegroundColorAttributeName
value:[NSColor colorWithCalibratedWhite:0.0 alpha:0.3]
range:NSMakeRange(17,4)];
// Set background color attribute
[str addAttribute:NSBackgroundColorAttributeName
value:[NSColor blueColor]
range:NSMakeRange(22,4)];
// Set ligature attribute
[str addAttribute:NSLigatureAttributeName
value:[NSNumber numberWithInt:1]
range:NSMakeRange(27,4)];
// Set kern attribute
[str addAttribute:NSKernAttributeName
value:[NSNumber numberWithFloat:10.0]
range:NSMakeRange(22,4)];
// Set superscript attribute
[str addAttribute:NSSuperscriptAttributeName
value:[NSNumber numberWithInt:1]
range:NSMakeRange(17,4)];
// Set baseline attribute
[str addAttribute:NSBaselineOffsetAttributeName
value:[NSNumber numberWithFloat:-10.0]
range:NSMakeRange(12,4)];
[str drawAtPoint:point];
}