【COCOA(MAC) APPLICATION 开发系列之一】创建第一个APPLICATION—计算器

本站文章均为 李华明Himi 原创,转载务必在明显处注明: 
转载自【黑米GameDev街区】 原文链接: http://www.himigame.com/mac-cocoa-application/893.html

终于HTTP与Socket服务器以及cocos2dx之间的通信各种框架成功完成后,现在抽时间学习下mac下的cocoa application,当然啦 主要用于做编辑器。

很多童鞋问我为什么不用swing swt等Java的编辑器,这样能跨平台。其实对于java写编辑器呢,Himi在还没有接触ios平台之前做android时自己已经写过java的地图编辑器和简单动作编辑器。当然啦比较简单,不使用Java进行编写编辑器的原因主要有三点:

1. 基于Cocos2dx做游戏了,基本上就用不到windows系统了。

2. 不管哪个平台的编辑器,其实都是一样的,写出的数据文件哪个平台都能正常解析出来的。

3. 个人原因吧,Himi喜欢mac下的东东,而且呢,基本上Himi 的工作期间99%都在mac下,虽然装有双系统,各种切也不方便哈哈;

ok,不扯了,那么本篇简单入门下Cocoa application吧;

首先安装Xcode,这个东东,神器一样的东东不解释;

OK,打开Xcode,创建一个项目;如下图:

 

一路下去后我们创建好了第一个cocoa application,虽然是个空项目,但是基本的Menu和window 已经自带了。

OK,首先在AppDelegate.h 和AppDelegate.m 下编写一点小代码:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

//

//  AppDelegate.h

//  CountApp

//

//  Created by Himi on 12-6-3.

//  Copyright (c) 2012年 Himi. All rights reserved.

//

 

#import <Cocoa/Cocoa.h>

 

@interface AppDelegate : NSObject <NSApplicationDelegate>

{

 

    IBOutlet NSButton *btn1;

    

    IBOutlet NSButton *btnResult;

    

    IBOutlet NSTextField *tfShow ;

    

    IBOutlet NSTextField *tfResult;

    

    

}

@property (assign) IBOutlet NSWindow *window;

 

-(IBAction)btnPress:(id)sender;

 

@end

 

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

//

//  AppDelegate.m

//  CountApp

//

//  Created by Himi on 12-6-3.

//  Copyright (c) 2012年 Himi. All rights reserved.

//

 

#import "AppDelegate.h"

 

@implementation AppDelegate

 

@synthesize window = _window;

 

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification

{

    // Insert code here to initialize your application

}

 

-(IBAction)btnPress:(id)sender{

    

    if(sender == btn1){

        

        NSString *str = [NSString stringWithFormat:@"%@%@",[tfShow stringValue],@"1"];

        

        [tfShow setStringValue:str];

        

    }else if(sender == btnResult){

        

        [tfResult setStringValue:[tfShow stringValue]];

        

    }

}

 

@end

简单说下代码:

1 . NSButton — 按钮 ;

NSTextField  文本条;

2.  IBoutlet :一般都说叫“插座变量”,Himi则喜欢说“仍”来形容;比如 IBOutlet NSButton *btn1 说通俗些就是把 btn1这个对象从代码中扔出来,能让我们的Interface Builder识别;

3. IBAction :动作,如果一个方法返回值是IBAction,则表示这个方法是由IB 界面的对象触发;

OK,下面接着打开MainMenu.xib文件:

a) 刚才就说啦,xcode为我们生成项目时,已经把基础的window和Menu都创建好了,而且启动项目后执行main.m入口函数中会默认加载这个MainMenu.xib文件啦;

b) 这里Himi简单加入了12个Button(Push Button)和两个TextField,还有一个image well做背景;如下图:

 

OK,然后要做的只有两步,首先在选中你左侧的 App Delegate如下图:

 

然后看你的项目最右侧Utilities窗口:

 

在这里你就可以看到你之前在代码中扔出来的一些对象和方法了。比如btn1,tfResult, 方法btnPress等,那么细心的童鞋可能看到有个btn后面是个“!”感叹号,这个表示对应的对象找不到了,因为大家看到之前代码中根本没有对应扔出所谓的btn,原因是之前Himi的NSButton对象是起名字btn,后来改名字了,所以这里提醒了,大家这里要注意下;

然后将我们这些扔出来的对象跟你想对应控件关联一下吧,加入这里我们连接btn1,如下图:

 

其他的大家按照此方式连接吧,函数也一样哦,如果你想让你的btnPress函数接受哪些控件触发后相应次函数,那么也一样连接就OK啦。

当然除此之外有个简单的连接方法,就是hold住你的control键,然后鼠标点击xib中左侧App delegate然后move到你想关联的组件,然后松开鼠标选中你希望连接的代码中扔出来的对象即可;如下图所示:

 

那么这里Himi只是简单的将btn1,btnResult,和两个textfield进行关联,用于简单的演示,并没有把这个计算器也完整。。。大家不要这里吐槽我什么标题党 – -。真没必要写完整,写完整了就是浪费时间不是么~ 要效率学习哈哈;

OK,回头分析下AppDelegate代码:

在 -(IBAction)btnPress:(id)sender{}函数内;

首先判断响应的组建是否是btn1,如果是OK,让刚才在xib中最上面的textfield(tfShow)显示出来,如果响应的是btnResult(“=”等号)那么我就让tfShow用户输入的都打印到我们window最下方的textfield(tfResult)上;

OK,下面是这个简单application的演示截图:

时间: 2024-10-26 05:48:32

【COCOA(MAC) APPLICATION 开发系列之一】创建第一个APPLICATION—计算器的相关文章

Windows Azure入门教学系列 (一): 创建第一个WebRole程序

原文 Windows Azure入门教学系列 (一): 创建第一个WebRole程序 在第一篇教学中,我们将学习如何在Visual Studio 2008 SP1中创建一个WebRole程序(C#语言).在开始学习之前,请确保你的机器上已经安装了: Windows Azure Tools for Microsoft Visual Studio 1.1 (February 2010) Windows Azure Software Development Kit (November 2009) 步骤

【COCOA(MAC) APPLICATION 开发系列之四】动作编辑器(COCOS2DX)制作流程详解及附上响应鼠标滚轴事件、反转坐标系、导入/创建资源目录等知识点代码!

本站文章均为 李华明Himi 原创,转载务必在明显处注明: 转载自[黑米GameDev街区] 原文链接: http://www.himigame.com/iphone-cocos2dx/911.html 又要说好久没更新博文啦,咳咳-. 其实博文中对于游戏开发,从j2me-android-ios ,从Client端-Server端  ,从jbox-cocos2d-cocos2dx 基本都囊括了,当然还有一些iap 防破解.GCC.架构等等,以及现在编辑器开发的博文,基本上貌似游戏开发不缺少什么了

用Eclipse搭建Android开发环境并创建第一个Android项目(eclipse+android sdk)_Android

一.搭建Android开发环境 准备工作:下载Eclipse.JDK.Android SDK.ADT插件 1.安装和配置JAVA开发环境:   ①把准备好的Eclipse和JDK安装到本机上(最好安装在全英文路径下),并给JDK配置环境变量,其中JDK的变量值为JDK安装路径的根目录,如我的为:D:\Program Files\Java\jdk1.7.0_02: ②打开命令提示符(cmd),输入java -version命令,显示如下图则说明JAVA环境变量已经配置好了. 2.安装ADT插件:

用Eclipse搭建Android开发环境并创建第一个Android项目(eclipse+android sdk)

一.搭建Android开发环境 准备工作:下载Eclipse.JDK.Android SDK.ADT插件 1.安装和配置JAVA开发环境: ①把准备好的Eclipse和JDK安装到本机上(最好安装在全英文路径下),并给JDK配置环境变量,其中JDK的变量值为JDK安装路径的根目录,如我的为:D:\Program Files\Java\jdk1.7.0_02: ②打开命令提示符(cmd),输入java -version命令,显示如下图则说明JAVA环境变量已经配置好了. 2.安装ADT插件: ①打

【COCOA(MAC) APPLICATION 开发系列之三】自定义NSVIEW并绘制一些常见的图形及字符串;

本站文章均为 李华明Himi 原创,转载务必在明显处注明:  转载自[黑米GameDev街区] 原文链接: http://www.himigame.com/mac-cocoa-application/908.html 不多说,比较简单,直接给出源码,大家作为参考吧. 对于Cocoa application 话说回来比较easy,如果之前你接触过iOS 的IB的话 ,基本上没什么可说的,上手很快: 因此对于Cocoa Application 不会太快的更新,接着Himi将对之前做的动编彻底的更新一

【COCOA(MAC) APPLICATION 开发系列之二】总结一些常用控件以及简单在自定义VIEW上绘制字符串

本站文章均为 李华明Himi 原创,转载务必在明显处注明:  转载自[黑米GameDev街区] 原文链接: http://www.himigame.com/mac-cocoa-application/902.html 上一篇已经对于xib与控件之间的关系都大致介绍了: 那么本篇不再详细解释如何如何连接控件以及控件代码等,直接给出代码以及需要注意的简单介绍下,便于童鞋们使用时可以给与参考: 1. 首先创建一个MyView类,继承NSView,如下: 1 2 3 4 5 6 7 8 9 10 11

SharePoint 2013 图文开发系列之创建内容类型

SharePoint内容类型,是很有特色的,就好比发布新闻,同在一张列表里,可以由内容类型区分图片新闻.文字新闻等,顾名思义,就是在一张列表里发布不同类型的项目. 1.添加新项目,选择SharePoint 2013 空项目,如下图: 2.选择调试网站和解决方案类型,如下图: 3.添加新项,选择内容类型,如下图: 4.选择继承的父内容类型,如下图: 5.修改内容类型的Feature文件,如下图: 6.查看内容类型的xml文件,如下图: 7.内容类型的可视化界面,我们可以在这里修改,也可以修改上一步

Windows Azure入门教学系列 (一): 创建第一个WebRole程序,互联网营销

在第一篇教学中,我们将学习如何在Visual Studio 2008 SP1中创建一个WebRole程序(C#语言).在开始学习之前,请确保你的机器上已经安装了: Windows Azure Tools for Microsoft Visual Studio 1.1 (February 2010) Windows Azure Software Development Kit (November 2009) 步骤一:创建解决方案和项目 以管理员权限打开Visual Studio 2008 SP1,

创建第一个Flex应用程序

在前面的文章中,笔者已经介绍了RIA.Flex技术和Flex Builder 2集成开发环境.从本 文开始将正式开始讲解使用Flex Builder 2创建Flex应用程序的方方面面.本文内容包括典 型应用程序开发步骤和创建第一个Flex应用程序的过程. 1. 应用程序开发步骤 创 建Flex应用程序的过程并不复杂.通常而言,典型应用程序的开发步骤如下所示: (1)使用文本编辑器或者Flex Builder 2创建MXML文件,并在该文件中添加MXML根标签,代码 如下: <?xml versi