MacRuby / Cocoa中渲染效果不佳的文本(NSFont)。有什么建议?

时间:2011-11-19 11:54:11

标签: cocoa nsview nstextview macruby

我有一个小型MacRuby应用,可在NSTextView内显示一些文字。我有一个名为make_label()的方法,它使用一些文本构建一个NSTextView并返回它,我用它通过addSubview()

添加到另一个NSView

make_label()看起来像这样:

def make_label( x, y, width, height, color, font_size, text )
  label = NSTextView.alloc.initWithFrame( NSMakeRect( x, y, width, height) )
  font = NSFont.systemFontOfSize(font_size)
  label.setFont( font )
  label.insertText( text )
  label.setTextColor( color )
  label.setDrawsBackground(false)
  label.setRichText(true)
  label.setEditable(false)
  label.setSelectable(false)
  label
end

我的问题是,为什么我的文字看起来如此糟糕?它看起来非常像素化,根本没有抗锯齿(从我所看到的)。

Click here for screenshot

此屏幕截图显示了2种不同大小的字体,具有相同的现象。

2 个答案:

答案 0 :(得分:1)

如果渲染到不透明的上下文,Cocoa就无法绘制子像素抗锯齿文本。

我来自客观C方面,所以我猜了一下,但尝试将label.setDrawsBackground(false)设置为true。

答案 1 :(得分:1)

罪魁祸首是setWantsLayer(true)我被吸引的视图被调用。我删除了这一行,我还需要像{joerick所描述的那样label.setDrawsBackground(false)