`
runfeel
  • 浏览: 936198 次
文章分类
社区版块
存档分类
最新评论

【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 下编写一点小代码:

//
//  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


//
//  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的演示截图:


分享到:
评论

相关推荐

    创建一个Mac OS X 下的Cocoa Application对话框程序

    本文将详细介绍如何使用Xcode 4.2.1这个强大的集成开发环境(IDE)来创建一个简单的Cocoa Application,该程序能够实现字母大小写的转换功能,特别关注如何设计和实现对话框。 首先,启动Xcode 4.2.1并创建一个新的...

    Wrox.Professional.Cocoa.Application.Security.Jun.2010.rar

    《Wrox Professional Cocoa Application Security Jun 2010》这本书主要关注的是苹果平台上的Cocoa应用程序的安全性。Cocoa是Apple macOS和iOS操作系统的核心开发框架,用于构建原生的、高性能的应用程序。这本书...

    苹果开发之Cocoa编程

    Cocoa框架是Apple为Mac OS X和iOS提供的软件开发框架之一,它包含了一系列APIs,用于构建应用程序界面和服务。通过本教程的学习,开发者可以掌握如何利用Cocoa框架开发高质量的应用程序。 ### 一、Cocoa概述 Cocoa...

    苹果开发之Cocoa编程原书第4版

    Cocoa编程是苹果平台开发的核心技术,主要用于构建Mac OS X和iOS的应用程序。在苹果开发之Cocoa编程原书第4版中,你将深入学习如何利用Objective-C或Swift语言来构建高效、功能丰富的应用程序。这本书是mac app...

    Learn Cocoa on the Mac, 2nd Edition

    Cocoa是苹果为Mac OS X提供的一个面向对象的框架集合,它为开发者提供了丰富的API来简化开发过程中的许多常规任务。通过学习本书,读者将掌握创建高效、美观的Mac OS X应用程序所需的所有知识。 - **Cocoa框架的...

    苹果开发之Cocoa编程(第三版)(中文版)

    本书《苹果开发之Cocoa编程(第三版)(中文版)》旨在为开发者提供全面、深入的Cocoa编程指导。Cocoa框架基于Objective-C语言,是构建高质量、本地化应用的首选工具。 在Cocoa编程中,有两个主要的组成部分:Cocoa ...

    iOS实现四则运算计算器的开发

    在iOS应用开发中,创建一个四则运算计算器是学习Objective-C和Cocoa框架的一个经典实践。这个项目将涉及用户界面设计、事件处理以及数学逻辑的编程。以下是对这个开发过程的详细阐述: 首先,我们需要了解iOS开发的...

    Cocoa 开发框架概述

    为了帮助理解Cocoa框架的基础概念,以下是一个简单的Objective-C HelloWorld!示例程序: ```objective-c #import int main(int argc, const char * argv[]) { @autoreleasepool { NSLog(@"Hello, World!"); } ...

    苹果开发之Cocoa编程 (原书第4版)

    《苹果开发之Cocoa编程 (原书第4版)》是一本专为iOS开发者准备的指南,涵盖了Cocoa编程的核心概念和技术。Cocoa是苹果操作系统(包括macOS和iOS)上的主要开发框架,它提供了丰富的工具和类库,使得开发者能够高效地...

    Cocoa 是什么?

    Cocoa 是苹果公司为 macOS 操作系统提供的一个应用程序开发环境,它与 Carbon 和 Java 并列作为 macOS 上的三大开发平台之一。Cocoa 不仅提供了一组面向对象的软件库,还包含了运行环境及一系列工具和服务,这些共同...

    cocoa编程之菜鸟入门

    - **Cocoa框架简介**:Cocoa是苹果为Mac OS X提供的一个应用程序框架,它提供了一套丰富的API来帮助开发者构建高性能的应用程序。Cocoa的核心是Foundation框架和AppKit框架,前者提供了基础的数据类型和底层功能支持...

    Cocoa Programming for Mac OS X

    Cocoa 的核心在于其强大的对象模型以及一系列支持图形用户界面开发的高级类。 - **发展历程**:Cocoa 的历史可以追溯到 NextStep 操作系统,随着苹果收购 NeXT,Cocoa 成为了 macOS 应用开发的核心技术之一,并逐渐...

    iPhone开发基础 cocoa入门

    ### iPhone开发基础 Cocoa入门 #### 一、Cocoa与iPhone开发环境...综上所述,Cocoa不仅为iPhone开发提供了一个坚实的技术基础,还涵盖了广泛的开发领域,从基本的概念到高级的主题,都是开发者需要熟练掌握的知识点。

Global site tag (gtag.js) - Google Analytics