日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

http://www.himigame.com/mac-cocoa-application/893.html

發布時間:2025/7/14 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 http://www.himigame.com/mac-cocoa-application/893.html 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

【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的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。