可以轻松地为主文本区域设置截断,但是弹出窗口没有任何截断,并且使用类似的路径,用户无法判断哪个路径是哪个路径。

还是一种更改弹出列表宽度以匹配最长字符串的方法,以免截断?

有帮助吗?

解决方案

不幸的是,没有官方方法可以做到这一点。

有一种方法可以做到这一点,尽管它不使用任何私人方法,但它依赖于内部实现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实现的,并且Table View的代表设置为弹出窗口。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top