如何更改NSCombobox弹出窗口上的截断方法或宽度
-
13-10-2019 - |
题
可以轻松地为主文本区域设置截断,但是弹出窗口没有任何截断,并且使用类似的路径,用户无法判断哪个路径是哪个路径。
还是一种更改弹出列表宽度以匹配最长字符串的方法,以免截断?
解决方案
不幸的是,没有官方方法可以做到这一点。
有一种方法可以做到这一点,尽管它不使用任何私人方法,但它依赖于内部实现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的代表设置为弹出窗口。
不隶属于 StackOverflow