XCode Cocoa问题(VB.NET到Cocoa)

XCode Cocoa问题(VB.NET到Cocoa),vb.net,cocoa,xcode,Vb.net,Cocoa,Xcode,嗯,我已经为VB.NET编程一段时间了,现在我对编程Mac应用程序感兴趣 我知道Objective-C。但是,当然,我需要了解Cocoa/Xcode的开发环境。据我所知,Interface Builder相当于VB.NET中的表单设计器以及两种环境中的其他常见概念 现在,我将从一些基本内容开始: 在VB.NET中,我将使用Paint函数获取图形对象,并在窗口中的某个位置绘制一个红色矩形。可可的当量是多少 多谢各位。我知道我的问题很具体(如何在窗口中生成红色矩形),但这是我需要更好理解的少数几件事

嗯,我已经为VB.NET编程一段时间了,现在我对编程Mac应用程序感兴趣

我知道Objective-C。但是,当然,我需要了解Cocoa/Xcode的开发环境。据我所知,Interface Builder相当于VB.NET中的表单设计器以及两种环境中的其他常见概念

现在,我将从一些基本内容开始:

在VB.NET中,我将使用Paint函数获取图形对象,并在窗口中的某个位置绘制一个红色矩形。可可的当量是多少


多谢各位。我知道我的问题很具体(如何在窗口中生成红色矩形),但这是我需要更好理解的少数几件事情之一,因为我可以从这一点开始工作。

最直接的方法是对标准视图类进行子类化,并实现
-[drawRect:
方法。在UIKit(iOS)和AppKit(Mac OS X)之间处理这些问题略有不同。例如,要在iOS中绘制视图可见边界大小的红色框,您需要子类化
UIView
,然后实现drawRect:like so:

- (void)drawRect:(CGRect)rect
{
  [[UIColor redColor] setFill]; // set the fill color
  UIRectFill([self bounds]);    // fill a box (this view's visible bounds)
}
- (void)drawRect:(NSRect)rect
{
  [[NSColor redColor] setFill]; // set the fill color
  NSRectFill([self bounds]);    // fill a box (this view's visible bounds)
}
要在Mac OS X中执行同样的操作,您需要子类化
NSView
,然后实现一个drawRect:like so:

- (void)drawRect:(CGRect)rect
{
  [[UIColor redColor] setFill]; // set the fill color
  UIRectFill([self bounds]);    // fill a box (this view's visible bounds)
}
- (void)drawRect:(NSRect)rect
{
  [[NSColor redColor] setFill]; // set the fill color
  NSRectFill([self bounds]);    // fill a box (this view's visible bounds)
}

有关详细信息,您可以查看用于使用Mac OS X和AppKit的或用于使用iOS和UIKit的。

我希望[self bounds]返回what,NSRect?无论如何,谢谢,我会测试一下。@Omega-是的,AppKit中的NSRect在iOS中返回CGRect可能听起来很愚蠢,但为什么要在AppKit和iOS中分开这些东西呢?是有重大区别,还是我可以简单地将所有NS前缀更改为UI(或CG,具体取决于)并解决问题?@Omega-很遗憾,iOS和Mac OS X之间的一个重大区别是UI的处理方式。AppKit是Mac OS X的UI框架,而UIKit是iOS(Cocoa Touch)的UI框架。在许多情况下,你可以做到这一点,但在许多其他情况下,你不能。查看我在答案中链接的绘图指南,看看你最感兴趣的一个(iOS v Mac OS X)