Come faccio a cambiare il metodo di troncamento o la larghezza sulla comparsa di una NSComboBox

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

  •  13-10-2019
  •  | 
  •  

Domanda

Il troncamento può essere facilmente impostata per l'area di testo principale, ma il pop-up non fa alcun troncamento, con percorsi simili, gli utenti non possono dire quale percorso è quale.

o è il modo per modificare la larghezza della lista pop-up in modo che corrisponda la stringa più lunga in modo che il troncamento non è necessario?

È stato utile?

Soluzione

Non v'è alcun modo ufficiale per fare questo, purtroppo.

C'è un modo per farlo, che, anche se non utilizza metodi privati, si basa sul modo NSComboBoxes sono implementate internamente, e che potrebbe cambiare in qualsiasi momento. Questo probabilmente non sarebbe accettabile in App Store.

Se si sottoclasse NSComboBoxCell e implementare il metodo tableView:willDisplayCell:forTableColumn:row: NSTableViewDelegate, è possibile modificare la cella di testo prima che venga visualizzato nella finestra popup della casella combinata.

- (void)tableView:(NSTableView *)tableView
        willDisplayCell:(NSCell *)cell
        forTableColumn:(NSTableColumn *)tableColumn
        row:(NSInteger)rowIndex
{
   [cell setTruncatesLastVisibleLine:YES];
   [cell setLineBreakMode:NSLineBreakByTruncatingMiddle];
}

Questo funziona perché la lista popup viene implementato internamente con una NSTableView, e delegato della vista tabella è impostato per la cella a comparsa.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top