gpt4 book ai didi

objective-c - Cocoa:单击按钮时 NSRectFill 不起作用

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

你好,我是 Cocoa 编程新手,我遇到了一个关于 NSRectFill 的问题。

窗口中有一个按钮,以下是我的AppDelegate.m文件:

@implementation LGAppDelegate

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
[[NSColor redColor] set];
NSRectFill(NSMakeRect( 50,50,10,10));
}


- (IBAction)buttonPressed:(id)sender
{
[[NSColor greenColor] set];
NSRectFill(NSMakeRect( 60,60,10,10));
}
@end

我期望看到的是应用程序启动时显示一个矩形,单击按钮后显示另一个矩形。然而,只显示一个矩形,单击按钮后没有任何反应。请帮我解决这个问题。谢谢。你的,Z

最佳答案

好吧,你没有任何上下文,系统不知道你想在哪里绘制。如果您想在 View 或图像上绘图,则必须使用 lockFocus/unlockFocus 对。

因此,如果您有一个名为 redView 的 View 作为 socket

[redView lockFocus];
[[NSColor redColor] set];
NSRectFill(NSMakeRect( 50,50,10,10));
[redView unlockFocus];

但这是一个非常糟糕的模型,您通常希望对象能够自行绘制。

当 View 的drawRect:方法被调用时,你已经拥有焦点并且不需要锁定解锁对

关于objective-c - Cocoa:单击按钮时 NSRectFill 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17241782/

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