2009-03-03 18 views
10

NSBezierPathクラスを使用してカスタムビュークラスのdrawRect関数で図形を描画する方法を理解しましたが、テキストを描画する方法がわかりません。Objective-Cを使用してカスタムビューでテキストを描画するにはどうすればよいですか?

NSText *text = [NSText new]; 
[text setTextColor: [NSColor yellowColor]]; 
[text setText: @"Hello!"]; 

私はどこ描画するNSTextオブジェクトを伝えるためにNSRectまたはNSPointを供給する必要があるかもしれないことを推測している:次のコードは、私がこれまで(のdrawRect機能にあります)テキストを描画するために持っているものですそれ自体、私はCocoaのドキュメントでこれを行う方法については何も見つけることができません。

答えて

22

あなたはこれらの線に沿って何かを試みることができる:

//note we are using the convenience method, so we don't need to autorelease the object 
NSDictionary *attributes = [NSDictionary dictionaryWithObjectsAndKeys:[NSFont fontWithName:@"Helvetica" size:26], NSFontAttributeName,[NSColor blackColor], NSForegroundColorAttributeName, nil]; 

NSAttributedString * currentText=[[NSAttributedString alloc] initWithString:@"Cat" attributes: attributes]; 

NSSize attrSize = [currentText size]; 
[currentText drawAtPoint:NSMakePoint(yourX, yourY)]; 
+0

完璧!助けてくれてありがとう。 –

2

NSTextはビューである(具体的には、NSTextViewのスーパークラス)。

属性(フォント、色、段落スタイルなど)の有無にかかわらず、テキストを描画する方法はいくつかあります。 AppKit's additions to NSStringおよびto NSAttributedStringを参照してください。

関連する問題