0
我試圖在NSImage上繪製一些文本,但我遇到了一些問題。
最初,我只是在NSImage上繪製了一個屬性字符串,但是如果字符串太長,它會跑掉圖像,我找不到將文本換行換行的方法。NSTextView不能將文本繪製到NSImage上
爲了解決這個問題,我想我可以製作一個NSTextView,將文本放在那裏,然後將其繪製到NSImage上。
不幸的是,當我試圖將NSTextView繪製到NSImage時,文本不會出現。但NSTextView的背景顏色確實顯示出來。
當我在將焦點鎖定在NSImage之前設置斷點並預覽NSTextView時,文本視圖具有文本。在將文本視圖繪製到NSImage上之後,它看起來像是NSTextView,只是沒有文本。
如果有更好的方法將文本投射到具有多行代碼的NSImage上,請讓我知道如何。
下面是我爲參考編寫的代碼:
NSTextView *textToDraw = [[NSTextView alloc] initWithFrame:NSMakeRect(0, 0, input.size.width - 16, 243)];
textToDraw.backgroundColor = [NSColor blueColor];
[textToDraw setAlignment:NSTextAlignmentCenter];
[textToDraw setEditable:YES];
// textOnImage is a regular NSString
[textToDraw insertText:textOnImage replacementRange:NSMakeRange(0, textOnImage.length)];
[textToDraw setTextColor:[NSColor blackColor]];
[textToDraw setFont:font];
[textToDraw setEditable:NO];
// input is an NSImage
[input lockFocus];
[textToDraw drawRect:NSMakeRect(8, inputImage.size.height - textToDraw.frame.size.height - 8, textToDraw.frame.size.width, textToDraw.frame.size.height)];
[input unlockFocus];
重複的圖像; http://stackoverflow.com/questions/13873764/cocoa-draw-text-on-nsimage –
@johnelemans這個問題,儘管相似,不是我的重複,也不回答我的問題。 – tww0003
我不認爲你可以像這樣調用textview的drawRect方法。在繪製這些對象之前,通常通過超級視圖完成很多圖形上下文設置。爲什麼不將textview添加到imageview的超級視圖中,覆蓋圖像,然後讓應用程序觸發圖形? –