gpt4 book ai didi

cocoa - 如何更改 NSComboBox 弹出窗口的截断方法或宽度

转载 作者:行者123 更新时间:2023-12-03 17:07:04 27 4
gpt4 key购买 nike

可以很容易地为主文本区域设置截断,但弹出窗口不做任何截断,路径相似,用户无法区分哪个路径是哪个路径。

或者是更改弹出列表的宽度以匹配最长字符串以便不需要截断的方法?

最佳答案

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

有一种方法可以做到这一点,尽管它不使用任何私有(private)方法,但依赖于 NSComboBox 的内部实现方式,并且这种方式可能随时改变。这在 App Store 中可能是 Not Acceptable 。

如果您继承 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 在内部实现的,并且 TableView 的委托(delegate)设置为弹出单元格。

关于cocoa - 如何更改 NSComboBox 弹出窗口的截断方法或宽度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4753377/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com