2009-03-03 40 views
10

Tôi đã tìm hiểu cách sử dụng lớp NSBezierPath để vẽ các hình dạng trong hàm drawRect của lớp xem tùy chỉnh của mình, tuy nhiên tôi không thể tìm ra cách vẽ văn bản. Các mã sau đây là những gì tôi có cho đến nay để vẽ các văn bản (nằm trong hàm drawRect):Làm cách nào để vẽ văn bản trong chế độ xem tùy chỉnh bằng cách sử dụng Objective-C?

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

Tôi đoán rằng tôi có thể cần phải cung cấp một NSRect hoặc NSPoint báo cho đối tượng NSText nơi để vẽ chính nó, nhưng tôi không thể tìm thấy bất cứ điều gì trong tài liệu Cocoa về cách làm điều này.

Trả lời

22

Bạn có thể thử một cái gì đó dọc theo những dòng:

//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

Hoàn hảo! Cám ơn rất nhiều về sự giúp đỡ của bạn. –

2

NSText là một cái nhìn (đặc biệt là các lớp cha của NSTextView).

Có một số cách để vẽ văn bản, có và không có thuộc tính (phông chữ, màu sắc, kiểu đoạn văn, v.v.). Xem AppKit's additions to NSStringto NSAttributedString.

Các vấn đề liên quan