我使用發佈的方法here在屏幕上滾動NSString
。但是,如下圖所示,字符串似乎沒有正確繪製。有人有主意嗎?謝謝。在NSView中滾動NSString
編輯:我忘了提,我修改了滾動文字類使用一個屬性串,而不是一個普通字符串。
編輯2:我認爲問題是字符串重複,纔可以完成第一次。如何在字符串重複之前添加一些間距?
我使用發佈的方法here在屏幕上滾動NSString
。但是,如下圖所示,字符串似乎沒有正確繪製。有人有主意嗎?謝謝。在NSView中滾動NSString
編輯:我忘了提,我修改了滾動文字類使用一個屬性串,而不是一個普通字符串。
編輯2:我認爲問題是字符串重複,纔可以完成第一次。如何在字符串重複之前添加一些間距?
我想通了。我不得不改變這一行drawRect:
:
otherPoint.x += dirtyRect.size.width;
到
otherPoint.x += (stringWidth + 20.0);
編輯:您可以根據您如何的差距太大希望字符串重複之前改變20.0
。
嘗試通過在drawRect:
開頭添加
NSRectFillUsingOperation(dirtyRect, NSCompositeClear);
繪製前清除該地區。
當我添加它使視圖完全填充黑色 – edc1591
使用'NSCompositeClear'時,不需要設置繪圖顏色。該操作不使用繪圖顏色;它總是擦拭整個受影響的區域。 –
@ edc1591:你是否覆蓋'isOpaque'來返回YES?如果是這樣,你不允許任何部分的視圖沒有上漆(或清除)。如果沒有,您是否使用未經修改的spudwaffle代碼?如果你只使用'NSRectFill(dirtyRect)',那麼將使用'NSCompositeCopy'填充當前顏色;你想要'NSCompositeClear',它會刪除。 –