Xcode的第一个mac程序

今天是第一次用Xcode,什么都不会,对于像我这种从windows c++转mac c++/obj-c/python的人,对mac下的编程可以说是一点都不了解,这篇文章也从零开始写起,记录我的cocoa编程学习历程。


1、mac下怎么编程

由于对Xcode极其陌生,大学时学java弄过eclipse,然后又了解到中文版的跨平台IDE Netbeans,所以就装了这两款IDE的mac版。刚装上的时候无从下手,因为我知道编写程序都是要include某些库的,可是库在哪儿呢?

上网查到eclipse和Netbeans要编写python和C++都需要安装插件,插件安装选项都在Help菜单里,找到相应的c++和python工具,都装上,就至少在新建项目时可以建立相应的工程了。不过python还好,C++可是怎么都运行不起来。查了老半天资料,发现这两款IDE都没有自带C++的编译器,于是安装了Xcode,此时Netbeans已经可以运行C++了,eclipse却仍然不行。

一番研究之后,发现eclipse新建C++工程得选Mac OS gcc,工程设置里的C++ builder setting也得选GCC C++ compiler,binary选Mach-O 64 Parser,这样应该就OK了(具体原理还不知道)。可见eclipse配置起来还是很麻烦的,不过我接触过的程序员都说eclipse比netbeans好……

说了这么半天C++和python,还都是集中在控制台程序,我很久以前写过VB和C#的GUI程序,但是C++、python的GUI我可从来没写过,何况在mac下,没有VS,我根本不知道怎么做GUI呢!又上网查,跨平台GUI库首推Qt和wxWidgets,好吧,不会用,而且这俩也都没有自带界面编辑器。正好在机缘巧合的机会下,我可能得需要开发mac原生程序,那么不如看看Xcode是怎么做mac程序的GUI的吧。

所以今天的目标是,做出一个mac下的GUI程序来。

至于Xcode,装了之后不需要做什么设置就能用了,如果是编写Objective-C应用,那么生成出来的就是app程序,可以直接在mac上面用了。这便是mac下如何编程的最简洁的答案。


2、Xcode怎么做GUI

Xcode自带了GUI编辑器IB,用起来还是挺方便的,不过跟VS最大的区别在于,VS是双击控件就进入到事件代码编写,而Xcode选择了某种称为“Action”和“Outlet”的链接机制,具体是怎么回事也还没有深究,简单来讲,Action用于触发事件,而Outlet是指针,指向某一控件,用于调用控件的功能,我知道的就这么多。

今天要写的程序需要有一个窗体,其中有一个按钮,按下按钮可以在窗体中空白处显示一行字。以下是流程:

(1)新建Objective-C Application工程,取名,选路径

(2)菜单View-Assistant Editor打开辅助编辑器,其实就是分屏

(3)第一屏顶栏选择MainMenu.xib打开界面编辑器,双击左侧树形图中的Windows-View,新建窗体,从右侧下部控件列表中把Button和Label拖入窗体

(4)第二屏选择工程名文件夹下的.h文件,鼠标点选按钮控件,按住CTRL键拖至.h文件中,建立IBAction。标签空间拖入建立IBOutlet。

(5)第二屏选择工程名文件夹下的.m文件,在文件头添加@synthesize IBOutlet名,IBAction函数中写上[IBOutlet名 setStringValue:@"要显示的字符串"]; ,记住中括号、@和结尾的分号不能少。

(5)点击运行应该就可以看到效果了。

完整代码如下:

//
//  AppDelegate.h
//  helloworld
//
//  Created by me on 14-6-25.
//  Copyright (c) 2014年 me. All rights reserved.
//

#import <Cocoa/Cocoa.h>

@interface AppDelegate : NSObject <NSApplicationDelegate>
@property (weak) IBOutlet NSTextField *text;


@property (assign) IBOutlet NSWindow *window;
- (IBAction)click:(id)sender;

@end

//
//  AppDelegate.m
//  helloworld
//
//  Created by me on 14-6-25.
//  Copyright (c) 2014年 me. All rights reserved.
//

#import "AppDelegate.h"

@implementation AppDelegate
@synthesize text;

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
    // Insert code here to initialize your application
}

- (IBAction)click:(id)sender {
    [text setStringValue:@"Hello World!"];
}
@end


3、总结

Objective-C中的.m文件就相当于C++中的.cpp文件,是用于实现函数功能的。

Xcode的代码自动提示功能很好用,可以迅速熟悉OC的类库。

转载于:https://www.cnblogs.com/vfxcoding/p/3845319.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值