gpt4 book ai didi

cocoa - NSTextView 和 NSTextContainer 大小和剪切区域

转载 作者:行者123 更新时间:2023-12-03 16:11:27 38 4
gpt4 key购买 nike

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

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

是否有可能在 TextView 内部但在文本容器外部绘制?

自定义 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];
}

最佳答案

感谢罗斯卡特的建议:

尝试像这样包装对 super 的调用:

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

关于cocoa - NSTextView 和 NSTextContainer 大小和剪切区域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5919628/

38 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com