繁体   English   中英

NSTextView和NSTextContainer大小和剪裁区域

[英]NSTextView and NSTextContainer size & clipping area

我在NSTextView中发现了非常有趣的文本容器行为。 当我设置容器的大小使其小于NSTextView框架的大小并尝试在NSTextView drawRect:中绘制任何图形(如线条,矩形)时,我的所有数字都剪裁为文本容器的大小。

因此,NSTextView的框架大小“允许”我使用它进行绘图,但似乎仅限于容器大小。

如果有可能在文本视图中绘制但在文本容器之外?

自定义NSTextView中的代码 - (void)drawRect:

[super drawRect:dirtyRect];

NSBezierPath* aPath = [NSBezierPath bezierPath];
[aPath moveToPoint:NSMakePoint(100, 100)];
[aPath lineToPoint:NSMakePoint(500, 100)];
[aPath stroke];

自定义textview调整策略集,因此它使用容器调整所有维度。 这是自定义NSTextView的代码

- (void) setFrameSize:(NSSize)newSize {

    [super setFrameSize:newSize];

    NSTextContainer *container = [self textContainer];
    newSize.width -= 200;
    [container setContainerSize:newSize];
}

感谢Ross Carter的建议:

尝试将调用包装成超级像这样:

[NSGraphicsContext saveGraphicsState];
[super drawRect:rect];
[NSGraphicsContext restoreGraphicsState];

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM