没有窗口的主屏幕上的NSRect

时间:2012-02-18 22:17:08

标签: objective-c xcode nsrect

我想知道是否有可能创建一个带有NSMakeRect的NSRect来创建一个简单的方块,它将显示在屏幕上,没有窗口或其后面的任何视图,只是在代码中完成。

这就是我的例子

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

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

由于

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

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

您将始终使用某个图层支持的对象(UIView等)。

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

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

但是,我相信这就是你要做的事情:

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

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

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