1

項目の長いメニューを含む NSPopUpButton があります。そのうちのいくつかは非常に幅が広​​く、ボタンの閉じた幅よりも広いです。メニュー項目のタイトルの一部は次のようになります。

「あまり面白くない本当に長い名前の始まり (重要な情報)」

メニューを閉じると、次のように表示されます。

「本当に長い名前の始まり...」

次のように表示したい:

「本当の始まり…(重要な情報)」

NSPopUpButton がその省略記号を作成する方法がわかりません。NSMenuItem で呼び出されているセレクターはありますか? NSPopUpButton または NSMenu はそれを何らかの方法で処理しますか?

どのクラスをサブクラス化する必要があり、どのセレクターをオーバーライドまたは実装する必要がありますか?

どうもありがとう。

4

2 に答える 2

0

ファビアンは私が必要としていた手がかりをくれました。ありがとう!

[[self cell] setLineBreakMode: NSLineBreakByTruncatingMiddle]

ただし、よりきめ細かい制御を行う方法があれば、さらに優れたものになります。切り捨てをより正確に制御する方法はありますか?

于 2011-08-07T09:03:31.277 に答える
0

このメカニズムは切り捨てと呼ばれます。Controlグループにグループ化されている改行と呼ばれる Interface Builder のオプションがあります。おそらく探している設定が呼び出され、メニュー項目の途中から文字の選択が開始されます。Truncate Middle

ただし、(important info)「…」の後に残っているのはその部分だけではなく、Name of my Me…tem (important info). さらに、重要な情報が部分的に切り捨てられることもあります。しかし、重要な情報が数字または数文字である限り、問題はないと思います。

メニュー項目に画像を追加すると、ニーズに合うかもしれません (ある種のバッジ)。属性付き文字列の文字を強制的に切り捨てないようにするオプションもあるかもしれませんが、確かではありません。

于 2011-08-05T23:52:45.013 に答える