我在这里遇到了一个小问题。我有一个 NSCollectionView 和一组视图,这些视图有一个 NSTextField 显示这些字体中的字体名。这是一个屏幕截图:
正如你所看到的,有些字体看起来有问题,它们后面有它们的 Interface Builder 字体大小。我使用此代码来设置initWithFrame:
NSTextField 的字体大小:
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)]];
我怎样才能解决这个问题?它看起来很可怕。提前致谢。