1

クリック可能なテキストを描画しようとしています。テキストがdrawRectに描画されているため、NSButtonを使用しないようにしています.drawRectでNSButtonを使用すると、drawRectの呼び出しごとにすべてのサブビューを通過して削除しない限り、サブビューが追加されます。

NSButton を作成しようとしましたが、サブビューとして追加する代わりに、テキストを描画する [myBtn.cell drawTitle: withFrame: inView:] を呼び出していますが、クリックできません。

(drawInRect を使用するような方法で) テキストを描画する方法はありますが、テキストをクリック可能にすることもできますか?

そうでない場合、何をお勧めしますか?標準の NSButton を使用し、毎回すべてのサブビューをクリアしますか?

4

1 に答える 1

1

これが以前に行われたのを見た 1 つの方法は、NSAttributedString. クリック可能な部分を何らかの方法で変更し (つまり、別のNSForegroundColorAttributeNameと にするNSUnderlineStyleAttributeName)、 を でそれに接続するNSURL必要がありNSLinkAttributeNameます。

私の記憶が正しければ、これは次のことを行うNSTextFieldサブクラスだ と思います。DSClickableURLTextField

テキストを自分で描画しないことをお勧めします。AppKit には、これを行う多くの機能があるためです。なんで自分で描く必要があるの?

于 2011-06-27T20:12:12.480 に答える