我已经把头撞在墙上太久了。我想创建双倍行距的输入文本,光标与字体的行高保持一致。
我尝试了许多方法:
- Using NSLayoutManager's delegate -layoutManager:lineSpacingAfterGlyphAtIndex:withProposedLineFragmentRect:
- 使用属性字符串并设置 NSParagraphStyle 的 -lineHeightMultiple 和 -lineSpacing 属性
- 使用自定义 NSTextStorage,该存储还尝试设置该段落样式。
。但它们最终都会得到一个太大的克拉,要么延伸到上面的空白处,要么延伸到每行下面的空白处。
关于我接下来可以尝试什么来实现此布局的任何想法?
如果您已经有所需的布局,并且问题只是插入符号的大小,您可以简单地子类化 UITextView 并覆盖以下方法:
- (CGRect)caretRectForPosition:(UITextPosition *)position
{
CGRect *originalRect = [super caretRectForPosition:position];
// Resize the rect. For example make it 75% by height:
originalRect.size.height *= 0.75;
return originalRect;
}
这将解决问题,这适用于ios6和7