给NSTextView一些填充/边距

Jos*_*hua 13 cocoa objective-c

我如何给NSTextView一些填充/左边距?我知道你是如何在NSTextField中进行的(通过子类化NSTextFieldCell)但是你如何在NSTextView中做到这一点?

编辑:更多信息:1.文本视图只有纯文本没有富文本,没有其他花哨的东西,如正确的文本编辑器(如段落插图).2.是否可以使用setTextContainerInset:为此?

Abi*_*ern 17

您可以尝试子类化NSTextView并覆盖textContainerOrigin.

细节在这里.

例如,这个子类将给出5的左上角和下边距10的上边距和下边距.

@implementation MyTextView

- (void)awakeFromNib {
    [super setTextContainerInset:NSMakeSize(15.0f, 5.0f)];
}


- (NSPoint)textContainerOrigin {
    NSPoint origin = [super textContainerOrigin];
    NSPoint newOrigin = NSMakePoint(origin.x + 5.0f, origin.y);
    return newOrigin;
}

@end
Run Code Online (Sandbox Code Playgroud)

  • @patrick`setTextContainerInset`以相等的数量对顶部和侧面进行插入.在此示例中,移动原点使其具有不对称填充 (2认同)

小智 5

只是为此添加更新。iOS7向UITextView添加了一个名为textContainerInset的属性。调用setTextContainerInset将在TextView内部为内容创建边距。

  • OS X现在也具有此属性。 (2认同)