gpt4 book ai didi

objective-c - cocoa 编辑NSBezierPath

转载 作者:行者123 更新时间:2023-12-03 17:50:48 24 4
gpt4 key购买 nike

我有一个简单的 bezierPath,NSView 中有 2 个元素;我想修改按下的按钮上的最后一个元素(NSPoint),但我的代码在路径上没有任何视觉效果。这是我在 NSView 子类中的代码:

    NSBezierPath *path;    
- (void)drawRect:(NSRect)dirtyRect {
[super drawRect:dirtyRect];
// Drawing code here.

path = [NSBezierPath bezierPath];
[path moveToPoint:NSMakePoint(0, 0)];
[path lineToPoint:NSMakePoint(60, 60)];
[path setLineWith:2.0];
[[NSColor redColor] set];
[path stroke];
//the path is correctly drawing and visible
}

- (IBAction)buttonPressed:(id)sender {
NSPoint newPoint = NSMakePoint(120, 120);
[path setAssociatedPoints:&newPoint atIndex:1]; //has no visible effect
}

有什么建议吗?

最佳答案

每次调用drawRect:时,您都在创建一条新路径并绘制它。然后,按下按钮即可修改路径。

所以你有两个问题:

  1. 您不断重新创建路径 - 只需在创建 View 时创建一次
  2. 更新路径时不会重绘 View - 使用 setNeedsDisplay

关于objective-c - cocoa 编辑NSBezierPath,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27719545/

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