NSString 字符串,格式为:位置/位置


//Screen Size Label
if (_screenFontEnable) {
        [_sfColor set];
        NSString *canvasLabel = [NSString stringWithFormat:@"%@ n W:%i/H:%i",_label,screenSizeWidth,screenSizeHeight ];
        [canvasLabel drawAtPoint:NSPointFromString([NSString stringWithFormat:@"{%i,%i}",boarder+(((screenSizeWidth/2)-_screenFontSize)),boarder+((screenSizeHeight/2)-_screenFontSize)]) withAttributes:@{NSFontAttributeName:[NSFont systemFontOfSize:screensize], NSForegroundColorAttributeName:_sfColor}];
}

您好,所以我正在尝试将我的文本居中在由用户输入的像素绘制的矩形中心,它可以是100x1001000x1000,因为他们喜欢来自ScreenSizeWidthScreenSizeHeight。用户输入ScreenFontSize打印在绘制的矩形顶部。 screenFontsize变化,屏幕大小也会发生变化,因此在矩形中打印的字符数也会发生变化。

我想出了如何将其放置在垂直轴的中心,但无法弄清楚如何水平放置。

这个想法也许以某种方式获得屏幕尺寸标签的宽度,并以矩形宽度的大小为中心,但如何做到这一点超出了我的范围。

这是它从上面打印在我的当前代码上的内容 - 在此处输入图像描述

您可以使用以下NSString方法之一:

- (NSSize)sizeWithAttributes:(NSDictionary<NSString *, id> *) attributes
- (NSRect)boundingRectWithSize:(NSSize)size
                       options:(NSStringDrawingOptions)options
                    attributes:(NSDictionary<NSString *, id> *)attributes
                       context:(NSStringDrawingContext *)context

以确定呈现时文本的长度,然后执行将其居中所需的数学运算。

最新更新