Wie ändere ich die Kürzungsmethode oder Breite am Popup eines nscombobox?
-
13-10-2019 - |
Frage
Die Kürzung kann leicht für den Haupttextbereich festgelegt werden, aber das Popup führt keine Kürzung mit ähnlichen Pfaden durch, die Benutzer können nicht erkennen, welcher Pfad welcher ist.
Oder ist die Möglichkeit, die Breite der Popup -Liste so zu ändern, dass sie mit der längsten Zeichenfolge übereinstimmt, sodass Kürzung nicht benötigt wird?
Lösung
Leider gibt es keinen offiziellen Weg, dies zu tun.
Es gibt eine Möglichkeit, dies zu tun, die, obwohl es keine privaten Methoden anwendet, auf der Art und Weise, wie NSCOMBOBOXES intern implementiert werden, intern abhängt und sich jederzeit ändern kann. Dies wäre im App Store wahrscheinlich nicht akzeptabel.
Wenn Sie NSComboboxcell unterklassen und die NstableViewDelegate -Methode implementieren tableView:willDisplayCell:forTableColumn:row:
, Sie können die Textzelle ändern, bevor sie im Popup -Fenster des Kombinationsfelds angezeigt wird.
- (void)tableView:(NSTableView *)tableView
willDisplayCell:(NSCell *)cell
forTableColumn:(NSTableColumn *)tableColumn
row:(NSInteger)rowIndex
{
[cell setTruncatesLastVisibleLine:YES];
[cell setLineBreakMode:NSLineBreakByTruncatingMiddle];
}
Dies funktioniert, da die Popup -Liste intern mit einem NstableView implementiert ist und der Delegierte der Tabellenansicht auf die Popup -Zelle eingestellt ist.