2011-11-01 20 views
1

我使用發佈的方法here在屏幕上滾動NSString。但是,如下圖所示,字符串似乎沒有正確繪製。有人有主意嗎?謝謝。在NSView中滾動NSString

編輯:我忘了提,我修改了滾動文字類使用一個屬性串,而不是一個普通字符串。

編輯2:我認爲問題是字符串重複,纔可以完成第一次。如何在字符串重複之前添加一些間距?

回答

0

我想通了。我不得不改變這一行drawRect:

otherPoint.x += dirtyRect.size.width; 

otherPoint.x += (stringWidth + 20.0); 

編輯:您可以根據您如何的差距太大希望字符串重複之前改變20.0

0

嘗試通過在drawRect:開頭添加

NSRectFillUsingOperation(dirtyRect, NSCompositeClear); 

繪製前清除該地區。

+0

當我添加它使視圖完​​全填充黑色 – edc1591

+0

使用'NSCompositeClear'時,不需要設置繪圖顏色。該操作不使用繪圖顏色;它總是擦拭整個受影響的區域。 –

+0

@ edc1591:你是否覆蓋'isOpaque'來返回YES?如果是這樣,你不允許任何部分的視圖沒有上漆(或清除)。如果沒有,您是否使用未經修改的spudwaffle代碼?如果你只使用'NSRectFill(dirtyRect)',那麼將使用'NSCompositeCopy'填充當前顏色;你想要'NSCompositeClear',它會刪除。 –