nscomboboxのポップアップの切り捨て方法または幅を変更するにはどうすればよいですか

StackOverflow https://stackoverflow.com/questions/4753377

  •  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を使用して内部的に実装されており、テーブルビューのデリゲートがポップアップセルに設定されているためです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top