我刚注意到这种行为。我正在使用以下调用绘制PDF:
[string drawInRect:renderingRect
withFont:font
lineBreakMode:NSLineBreakByWordWrapping
alignment:alignment];
除非字符串的第一个字符是新行(\ n)字符,否则一切都很好。例如:
[@"Hello hello" drawInRect:renderingRect withFont:font lineBreakMode:NSLineBreakByWordWrapping alignment:alignment]; // Draws "Hello hello"
[@"\nHello hello" drawInRect:renderingRect withFont:font lineBreakMode:NSLineBreakByWordWrapping alignment:alignment]; // Draws nothing
我有什么遗失的吗?对我来说,如果第一个字符是新行,该方法将不会打印任何内容,这似乎有点奇怪。
此外,当第一个字符是新行字符时,(CGSize)sizeWithFont:(UIFont *)font constrainedToSize:(CGSize)size lineBreakMode:(NSLineBreakMode)lineBreakMode
没有问题。它可以毫无问题地进行尺寸估算。
答案 0 :(得分:1)
我已经开始使用iOS7编译应用程序,问题不再发生了。因此,必须由于以下配置而发生:
答案 1 :(得分:0)
如果您使用文本编码两个字符:
\n
将抽签,但我相信你想换线。试试这个适用于我的代码:
NSDictionary *attr = [NSDictionary dictionaryWithObjectsAndKeys:[NSFont fontWithName:@"Helvetica" size:22], NSFontAttributeName,[NSColor blackColor], NSForegroundColorAttributeName, nil];
NSAttributedString *text=[[NSAttributedString alloc] initWithString:@"Hello hello" attributes: attr];
NSSize attrSize = [text size];
[text drawAtPoint:NSMakePoint(X, Y)];
我认为您可以使用某种方法替换drawAtPoint:
方法,将矩形作为参数。