我在这里遇到一些问题。我有一个NSCollectionView与一组视图,其中有一个NSTextField显示这些字体的字体名称。这是一个截图:
正如您所看到的,某些字体看起来很奇怪,它们背后有Interface Builder字体大小。我使用此代码在NSTextField的initWithFrame:
中设置字体大小:
float targetWidth = rect.size.width - 10;
float targetHeight = rect.size.height - 10;
int i;
for (i = 10; i < 100; i++) {
NSDictionary *attrs = [[NSDictionary alloc] initWithObjectsAndKeys:[NSFont fontWithName:[self.font fontName] size:i], NSFontAttributeName, nil];
NSSize strSize = [[self stringValue] sizeWithAttributes:attrs];
[attrs release];
if (strSize.width > targetWidth || strSize.height > targetHeight) {
break;
}
}
[self setFont:[NSFont fontWithName:[self.font fontName] size:(i - 1)]];
我该如何解决这个问题?它看起来很糟糕。提前谢谢。
答案 0 :(得分:0)
这几乎看起来更像是集合视图的动画问题。你有没有打开wantLayers作为原型收集项目视图?尝试将其关闭。还可以尝试在文本字段后面放置一个不透明的视图,这样它背后就没有透明度,一直到集合视图本身,看到它可以改进。
如果这不起作用,请澄清为什么以及如何使用-initWithFrame:文本字段的方法...似乎是一种奇怪的做事方式。