nscomboboxのポップアップの切り捨て方法または幅を変更するにはどうすればよいですか
-
13-10-2019 - |
質問
メインテキスト領域には切り捨てを簡単に設定できますが、ポップアップは切り捨てられず、同様のパスではユーザーがどのパスがどのパスであるかを知ることができません。
または、トランケーションが必要ないように、ポップアップリストの幅を最も長い文字列に合わせて変更する方法はありますか?
解決
残念ながら、これを行う公式の方法はありません。
それを行う方法がありますが、それはプライベートな方法を使用していませんが、NSComboboxが内部で実装される方法に依存しており、いつでも変更される可能性があります。これはおそらくアプリストアでは受け入れられないでしょう。
nscomboboxcellをサブクラス化し、nstableviewdelegateメソッドを実装する場合 tableView:willDisplayCell:forTableColumn:row:
, 、テキストセルがコンボボックスのポップアップウィンドウに表示される前に変更できます。
- (void)tableView:(NSTableView *)tableView
willDisplayCell:(NSCell *)cell
forTableColumn:(NSTableColumn *)tableColumn
row:(NSInteger)rowIndex
{
[cell setTruncatesLastVisibleLine:YES];
[cell setLineBreakMode:NSLineBreakByTruncatingMiddle];
}
これは、ポップアップリストがnStableViewを使用して内部的に実装されており、テーブルビューのデリゲートがポップアップセルに設定されているためです。
所属していません StackOverflow