2011-06-27 71 views
1

我想繪製一些可點擊的文本。 我想不使用NSButton,因爲我的文本正在drawRect中繪製,並且在drawRect中使用NSButton會使它在本身上添加子視圖,除非您在drawRect的每次調用中通過並刪除所有子視圖。可可繪圖點擊文本

我試圖創建一個NSButton,而不是將其添加爲子視圖,我正在調用[myBtn.cell drawTitle:withFrame:inView:]它繪製文本,但它不是可點擊的。

有沒有辦法繪製文本(像使用drawInRect的方式),但我也可以讓文本可點擊?

如果不是,您會推薦什麼?使用標準NSButton並每次清除所有子視圖?

回答

1

我以前見過這種方法的一種方法是使用NSAttributedString。可點擊的部分應該以某種方式進行更改(即,有不同的NSForegroundColorAttributeNameNSUnderlineStyleAttributeName),然後將NSURL附加到NSLinkAttributeName

如果我沒有記錯,我相信這是一個NSTextField子類,這樣處理:DSClickableURLTextField

我建議自己繪製文本,因爲有很多的事情了AppKit,會爲你做這個。你爲什麼需要自己畫?

+0

繪製自己的主要原因是,如果您在drawRect中添加子視圖,那麼您必須清除drawRect的每次運行的子視圖,或者您可以在對方頂部獲得多個子視圖。我想這歸結爲我可能不應該在drawRect中做我的文本/標籤....這可能是「正確」的解決方案.... – kdbdallas

+0

@kdbdallas我的一般規則是,如果別的東西可以繪製它爲你,讓它。 :) –