我正在学习目标C并且可以使用一些指针(双关语)。我有Java背景。我刚刚完成了“使用Objective C编程”一书。我试图使用drawWithRect在屏幕上绘制一些文本,但无法使这段示例代码工作。
#import <Cocoa/Cocoa.h>
#import <AppKit/NSStringDrawing.h>
//#import <UIKit/UIKit.h> //this is invalid
//#import <UIKit/UIColor.h> //this is invalid
#import "NSString+Draw.h"
NSDictionary *attributes = @{
NSForegroundColorAttributeName:[UIColor blueColor]
};
[@"Hello" drawWithRect:CGRectMake(20, 20, 50, 50)
options:0 attributes:attributes context:nil];
它似乎不在我的XCode项目的Frameworks文件夹中。我看过苹果开发者网站,却被无关的信息所淹没。
如何获得此UIKit?这是一个插件吗?顺便说一下为什么一些进口使用引号和其他尖括号?它们可以互换吗?
我对框架没有很好的了解。什么是关键框架?
是否有基于Web的API文档,如Javadocs?
还在。
是否有相当于OSX的UIKit / UIColor等? - 我发现了它,AppKit / NSColor
好的经过一些探索我得到了这个,但它仍然没有写在屏幕上。
#import <Cocoa/Cocoa.h>
#import <AppKit/NSStringDrawing.h>
#import <AppKit/NSColor.h>
#import "NSString+Draw.h"
@implementation NSString (Draw)
- (void) drawString:(NSString *) myString{
NSDictionary *attributes = @{
NSForegroundColorAttributeName:[NSColor blueColor]
};
[@"Hello" drawInRect:CGRectMake(20, 20, 50, 50) withAttributes:attributes];
}
答案 0 :(得分:3)
看起来您已经创建了一个针对OSX的项目。 UIKit是仅包含在iOS中的框架。创建一个iOS项目以使用该框架。
UIKit是iOS的大框架,包括UIColor(或带有UI前缀的任何其他内容)。
文档在线,也可以在“帮助”标签的Xcode中找到
答案 1 :(得分:0)
除了需要使用UIKit和iOS项目之外,它还可以直接导入顶级标题,而不是单个标题。
所以只是
#import <UIKit/UIKit.h>
或者,如果在Xcode 5上
@import UIKit;
答案 2 :(得分:0)
要在屏幕上绘制任何内容,您需要一些称为图形上下文的东西。图形上下文为您提供了绘制和操作的区域。 Apple在他们的documentation here中做了很好的解释。通过Apple文档进一步研究得出specific section for drawing text(特别是NSString
)。以下摘自NSString Drawing文档:
Application Kit向NSString类添加了三个方法,以直接在NSView实例中支持绘图字符串对象:
drawAtPoint:withAttributes:
,drawInRect:withAttributes:
和sizeWithAttributes:
。
您可能需要检查三件事,以确保所有内容都被正确绘制:
CGRect
(至少用于测试)?如果您对使用AppKit方法绘制NSString感到非常沮丧,请尝试使用Core Text框架:
Core Text是一种用于布局文本和处理字体的高级低级技术。可以从所有OS X和iOS环境访问Mac OS X v10.5和iOS 3.2中引入的Core Text API。
有关框架和一般SDK问题的信息:
下载Xcode时,您也可以下载开发SDK和相关文档。 Development SDK主要由Frameworks(来自Apple)组成。 Framework是一个包含可见头文件的庞大编译代码库。所以,你看不到实现,但你可以看到标题。
导入框架时(无论是否来自Apple),请使用括号(如果在构建设置中启用了模块,则使用模块)。导入文件(而不是框架)时,只需使用引号。
iOS和OS X都有很多框架。我不能在这里列出所有框架,但我可以告诉你关键的。这是一个link to the iOS developer documentation, including the frameworks。 iOS上的四大亮点是基础, UIKit , CoreGraphics ,以及(有时) QuartzCore 。当您在Xcode文件导航器中单击项目时,您应该看到项目设置和包含的框架列表。单击加号按钮以查看可以添加的所有Apple框架。其中大多数都与系统服务有关(例如GameCenter框架是GameKit,而Passbook框架是PassKit)。
是的! Apple开发人员文档可在线和离线使用(随Xcode一起安装)。在线文档通常可以通过谷歌搜索找到,但这里是link。它也在Xcode帮助菜单/文档菜单中。您还可以选择单击要了解更多信息的任何代码。
OS X的UIKit(仅限iOS的框架)相当于AppKit。大多数类都是相同的名称,只有NSA前缀而不是UI前缀。例如,在OS X上,您需要NSColor而不是UIColor。
答案 3 :(得分:0)
要在视觉上做事,你需要一个图形上下文来绘制。
Objective-C没有提供。 操作系统通过窗口服务器完成。 OS X上的AppKit通过NSWindow提供此功能。 iOS上的UIKit为此提供了一个隐式窗口。