如何在NSComboBox的弹出窗口中更改截断方法或宽度
问题描述:
可以轻松地为主文本区域设置截断,但弹出窗口不会执行任何截断操作,但具有相似的路径,用户无法分辨哪个路径是哪个路径。如何在NSComboBox的弹出窗口中更改截断方法或宽度
或者是一种方法来更改弹出列表的宽度匹配最长的字符串,以便不需要截断?
答
不幸的是,没有官方的方式来做到这一点。
有一种方法可以做到这一点,虽然它不使用任何私有方法,但依赖于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内部实施,并表视图的委托设置为弹出电池。
谢谢,我会看看这是否会为我们工作。 – 2011-01-21 06:32:16