我正在使用C++中主要是CoreFoundation的代碼庫。我不希望將Foundation對象引入尚未使用它們的源文件中。在CFAttributedString中設置刪除線屬性
我想創建一個CFAttributedString使用NSStrikethroughStyleAttribute,而無需首先創建一個NSAttributedString。我知道他們是免費橋接的,但如果可能的話,我寧願保持這個源文件不含obj-c。
那麼,有沒有辦法用strikethrough屬性創建一個CFAttributedString而不經過Foundation,如果是這樣,怎麼辦?
的字符串使用'CTLineDraw'渲染。經過一些實驗後,我確信你是對的。我曾希望能夠使用'NSAttributedString'可用的屬性來設置'CFAttributedString',認爲由於它們是免費橋接,所以應該可以,然後使用'CTLineDraw'進行渲染。不過,我認爲AppKit能夠利用CoreText渲染不能指向的屬性字符串屬性。 –
@ChristopherCole:基本上,屬性字符串只是一個與任意屬性相結合的字符串,屬性可以在字符串的不同點上有所不同。 AppKit定義了一組知道如何解釋和渲染的屬性。 CoreText定義了一個獨立的集合。如果你願意,你可以定義你自己的一組屬性,並將它們用於任何你想要的。這實際上是Cocoanetics職位發生的事情;自定義刪除線屬性被定義,並且自定義繪圖例程知道如何找到並解釋它。 –
謝謝。我認爲我對歸因字符串的用途以及如何使用這些屬性有了更好的理解。 –