我想知道是否可以使用 NSMakeRect 创建一个 NSRect 来制作一个简单的正方形,该正方形将显示在屏幕上而没有窗口或后面的任何视图,只是全部用代码制作。
这就是我的例子
-(void)drawRect
{
NSRect myNewRect
myNewRect = NSMakeRect(100, 100, 50, 50);
}
这只是一个简单的起点,但它本身不会显示在屏幕上。我需要添加什么?
谢谢
我想知道是否可以使用 NSMakeRect 创建一个 NSRect 来制作一个简单的正方形,该正方形将显示在屏幕上而没有窗口或后面的任何视图,只是全部用代码制作。
这就是我的例子
-(void)drawRect
{
NSRect myNewRect
myNewRect = NSMakeRect(100, 100, 50, 50);
}
这只是一个简单的起点,但它本身不会显示在屏幕上。我需要添加什么?
谢谢
Mac OS X 上的每个绘图操作都需要某种窗口。所以不,你不能在没有窗口的情况下绘制矩形。但是您可以创建一个没有任何边框的透明窗口。
首先,你不能“在没有窗口或后面没有任何视图的情况下显示在屏幕上”。
您将始终在某些图层支持的对象(UIView
等)上绘图。
并且UIView
s 最终必须成为某些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
方法时绘制了一个矩形。