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

cocoa – NSTextView和NSTextContainer大小和剪切区域,第1张

概述我在NSTextView中发现了非常有趣的文本容器行为.当我设置容器的大小,使其小于NSTextView框架的大小,并尝试 在NSTextView drawRect中绘制任何图形(如线条,矩形):,我的所有图形都剪切为文本容器的大小. 因此,NSTextView的框架大小“允许”我使用它进行绘图,但似乎仅限于容器大小. 如果有可能在文本视图中绘制但在文本容器之外? 自定义NSTextView中的代 我在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];
总结

以上是内存溢出为你收集整理的cocoa – NSTextView和NSTextContainer大小和剪切区域全部内容,希望文章能够帮你解决cocoa – NSTextView和NSTextContainer大小和剪切区域所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/web/1011716.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-22
下一篇2022-05-22

发表评论

登录后才能评论

评论列表(0条)

    保存