【Cocoa(mac) Application 开发系列之一】创建第一个application—计算器

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

转载于:https://www.cnblogs.com/xuejinhui/p/4494116.html

http://www.himigame.com/mac-cocoa-application/893.html相关推荐

  1. Mac平台下Opencv开发环境搭建

    OpenCV(Open Source Computer Vision Library),是一个开源的跨平台的计算机视觉库,它实现了图像处理和计算机视觉领域的很多通用算法,可以在多种计算机平台上运行,支 ...

  2. 关于application title一直是untitled的问题

    建立了一个cocoa application项目,在Interface Builder中修改了title,在运行时标题始终是"Untitled". 这是我在http://stack ...

  3. iOS开发笔记 2、Cocoa简明

    历史 NeXSTEP Many years ago Cocoa was known as NeXTSTEP . NeXT Computer developed and released version ...

  4. (转)[Cocoa]深入浅出 Cocoa 之 Framework

    [Cocoa]深入浅出 Cocoa 之 Framework 罗朝辉(http://blog.csdn.net/kesalin/) CC许可,转载请注明出处 Framework 简介 Mac OS X ...

  5. 在Xcode以及Interface Builder下简单使用Cocoa

    下面写下建一个简单的程序,来说明如何使用macintosh的IDE 中的Xcode以及Interface Builder 做简单的Cocoa开发,为初学者学习 程序功能是把一个text里的数字复制到一 ...

  6. Mac之button的使用Show+NSMenu+next+to+NSButton+in+Swift+OSX

    http://www.itdaan.com/keywords/Show+NSMenu+next+to+NSButton+in+Swift+OSX.html http://www.itdaan.com/ ...

  7. 使用XCode建立一个MAC OS X应用

    (1)使用XCode建立一个MAC OS X应用: 第一步:打开XCode,新建一个OSX应用->Cocoa Application 第二步:点击*.xib文件,出现一个窗口,然后从左边拖一个按 ...

  8. python ios开发环境_程序员的macOS系列:Mac开发环境配置

    1.前言 最近在写<程序员的macOS系列>文章,之前写的第一篇 程序员的macOS系列:精选Mac App,大家都希望楼主尽快更新,结果拖到了2个月后,所以今天终于更新啦!其实macOS ...

  9. Mac 上 Sublime Text3-Package control-console安装失败解决方案

    之前一直在mac电脑上用的旧版Sublime Text2,最近在学React框架,使用Package control安装语法高亮老是失败,于是一怒之下卸载了Sublime Text2,重装了Subli ...

最新文章

  1. CSS3 Animation(下)
  2. 信号转换| 如何使用模拟电路完成对方波信号倍频PWM转换?
  3. luogu 2051 中国象棋
  4. C# 获取QQ群数据的实现
  5. XAMPP的MYSQL无法启动 -This may be due to a blocked port, missing dependencies,
  6. android的keyevent方法,Android keyevent按键和值的对应
  7. 【数理统计】数理统计的简单认识
  8. kafka集群搭建详细步骤
  9. 关于spring security的URL路径验证问题
  10. 智能门锁电路图_智能门锁原理一览 你pick哪一种?
  11. 设置笔记本为无线wifi发射器
  12. 免费的机器人聊天接口
  13. 是否能够成为真正的编程高手,主要是在于是否有毅力坚持学习和练习。输出名言“贵有恒,何必三更起五更睡:最无益,只怕一日曝十日寒。”主要是想让读者激励自己,坚持学习C语言。
  14. iphone应用隐私政策_如何在iPhone上“隐藏”联系人以获得更大的隐私
  15. prometheus数据采集
  16. 超简单的_ps抠图_在线抠图工具_智能抠图_速抠图
  17. unity2d游戏开发系列教程:一、环境安装
  18. 电脑市场GHOST XP SP3_V9.9
  19. linux宝塔杰奇安装,杰奇2.4安装教程+远程采集
  20. Python 库大全(上)

热门文章

  1. 基于Android平台的流媒体播放器的设计
  2. MAC下PHP7.1.23安装intl3.0.0
  3. windows 8 突然不能上网 LSP 二种修复方法
  4. 机器性能这么好,为什么点击右键弹出菜单还这么慢?
  5. 2017 年初、阿里、腾讯、百度、华为、京东、搜狗和滴滴面试题汇集(更新篇)...
  6. Apple Swift编程语言入门教程
  7. [更正]谈获取当前系统类型(SP OR PPC)
  8. 将地址转换为链接的正则表达式(regex url href)
  9. BSPreloadTableVew带有预加载功能的tableView
  10. 关于Flutter初始化流程,我必须告诉你的是...