Objective c 在NSCollectionView中,具有自动调整文本大小的NSTextField看起来很糟糕
我这里有点小问题。我有一个NSCollectionView,其中包含一个视图集合,该集合有一个NSTextField,它以这些字体显示字体名称。以下是一个屏幕截图: 正如您所看到的,有些字体看起来很炫目,它们后面有自己的Interface Builder字体大小。我使用此代码在NSTEXT字段的Objective c 在NSCollectionView中,具有自动调整文本大小的NSTextField看起来很糟糕,objective-c,cocoa,fonts,drawing,visual-glitch,Objective C,Cocoa,Fonts,Drawing,Visual Glitch,我这里有点小问题。我有一个NSCollectionView,其中包含一个视图集合,该集合有一个NSTextField,它以这些字体显示字体名称。以下是一个屏幕截图: 正如您所看到的,有些字体看起来很炫目,它们后面有自己的Interface Builder字体大小。我使用此代码在NSTEXT字段的initWithFrame:中设置字体大小: float targetWidth = rect.size.width - 10; float targetHeight = rect.size.h
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)]];
float targetWidth=rect.size.width-10;
浮动目标灯=矩形尺寸高度-10;
int i;
对于(i=10;i<100;i++){
NSDictionary*attrs=[[NSDictionary alloc]initWithObjectsAndKeys:[NSFont fontWithName:[self.font fontName]大小:i],NSFontAttributeName,nil];
NSSize strSize=[[self stringValue]sizeWithAttributes:attrs];
[ATTR释放];
如果(strSize.width>targetWidth | | strSize.height>targetHeight){
打破
}
}
[self-setFont:[NSFont-fontWithName:[self.font-fontName]大小:(i-1)];
我怎样才能解决这个问题?看起来糟透了。提前感谢。这似乎更像是集合视图动画的问题。您是否为原型集合项目视图打开了wantsLayers?试着把它关掉。还可以尝试在文本字段后面放置一个不透明的视图,这样它后面就没有透明度,一直到集合视图本身,这样可以改善情况 如果这不起作用,请澄清为什么以及如何使用文本字段的-initWithFrame:方法。。。这似乎是一种奇怪的做事方式