1

我想知道是否可以使用 NSMakeRect 创建一个 NSRect 来制作一个简单的正方形,该正方形将显示在屏幕上而没有窗口或后面的任何视图,只是全部用代码制作。

这就是我的例子

-(void)drawRect
{
   NSRect myNewRect
   myNewRect = NSMakeRect(100, 100, 50, 50);
}

这只是一个简单的起点,但它本身不会显示在屏幕上。我需要添加什么?

谢谢

4

2 回答 2

2

Mac OS X 上的每个绘图操作都需要某种窗口。所以不,你不能在没有窗口的情况下绘制矩形。但是您可以创建一个没有任何边框的透明窗口。

于 2012-02-18T22:22:30.643 回答
1

首先,你不能“在没有窗口或后面没有任何视图的情况下显示在屏幕上”。

您将始终在某些图层支持的对象(UIView等)上绘图。

并且UIViews 最终必须成为某些UIWindow层次结构的一部分才能显示它们。

所以你根本不能在没有窗口的主屏幕上“[draw] ”。这不是 Core Graphics 的工作方式。

但是,我相信这是你想要做的:

-(void)drawRect
{
   CGRect myNewRect = CGRectMake(100, 100, 50, 50);

   CGContextRef ctx = UIGraphicsGetCurrentContext();
   CGContextSetFillColorWithColor(ctx, [[UIColor redColor] CGColor]);
   CGContextFillRect(ctx, myNewRect);
}

UIView在实现上述drawRect方法时绘制了一个矩形。

于 2012-02-18T22:21:18.133 回答