问题:我想在基于视图的NSTableView单元格中设置长文本,其中要适当调整行高。为此,我需要计算文本边界矩形的高度。 我找到了解决方案:https://discussions.apple.com/thread/4216370?tstart=0但它使用了10.11中不推荐使用的函数。 所以基本问题是:如何测量多行/断行文本的边界矩形,同时确保其与OS X 10.11的一致性?
答案 0 :(得分:2)
根据标头文件,您应该使用-initWithSize:
而不是-initWithContainerSize:
。不确定文档中没有提到的原因。当然,如果您需要能够在10.11之前的版本上运行代码,那么您必须有条件地调用-initWithSize:
或-initWithContainerSize:
,具体取决于当前版本。
NSTextContainer *container;
if ([NSTextContainer instancesRespondToSelector:@selector(initWithSize:)]) {
container = [[NSTextContainer alloc] initWithSize: NSMakeSize(width, FLT_MAX)];
} else {
container = [[NSTextContainer alloc] initWithContainerSize: NSMakeSize(width, FLT_MAX)];
}
奇怪的是,当我构建一个使用带有10.11 SDK的旧初始化程序的项目时,我实际上并没有得到弃用警告。