Официального способа сделать это, к сожалению, нет.
Существует способ сделать это, который, хотя он и не использует никаких частных методов, основан на том, как NSComboBoxes реализованы внутри, и чтоможет измениться в любое время.Это, вероятно, было бы неприемлемо в App Store.
Если вы создаете подкласс 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, а делегат табличного представления установлен во всплывающую ячейку.