[MAC]建立第一个MACApplication 应用,使用MAC里面的Xcode软件

来源:互联网 发布:mysql创建普通索引 编辑:程序博客网 时间:2024/06/06 00:18

2014-05-08

建立第一个MACApplication 应用,使用MAC里面的Xcode软件

主要使用的是:Cocoa控件技术

以下实现的功能是:一个MAC应用,显示2个编辑框,2个便签,4个按钮,按钮可以改变标签和EditBox内容。

开始:MAC的系统,打开Xcode开发编辑器(免费自带的开发工具,类似VS2010)

STEP 1 : New -> MAC Application : Cocoa Application

STEP 2 : m文件相当于cpp文件, h文件相当于h文件,xib文件相当于界面集合文件,

STEP 3 : 让开发环境,最左边显示文件夹目录架构

                    左边第二列显示界面设置xib文件

                    左边第三列显示m文件

                    最后一列显示各种控件聚合面板

STEP4 : 在界面上增加各种控件后,点击Button Control, 然后按住 Ctrl 键,拉动到m文件的倒数第二行,就是在@end前面。

解释:这个CTRL+拉动控件到代码m文件里的动作的作用:自动将控件和一个函数绑定。不用手动去绑定了。

注意:当你拉动过去后,会自动弹出一个输入函数名称的对话框。

主要生产的代码有:

例如:一个Cbutton控件

在m文件的@end前自动生成的代码是:

-(IBAction) OnBT_Change1(id) sender

{

}

STEP 5 将EditBox控件名称放入到h里面,以便其他控件能控制这个控件

点Edit1 + Ctrl,然后拉动到h文件里面,当然是@end前面,记住@end表示所有代码的结束标志。

然后就会自动生成代码:

@property (assign) IBOutlet NSTextField*m_Edit_Name1;

这时候需要手动增加一行代码到对应的m文件里面,才能用这个公共变量。

在m文件的@implementation增加一句:

@synthesize m_Edit_Name1;

这样在m文件里面,才可以使用。

例如在上面的按钮函数里面增加

-(IBAction) OnBT_Change1(id) sender

{

 m_Edit_Name1.stringValue =@”Hello”;

}

这时候编译,运行,OK!成功!

点击一个按钮,一个编辑框内会显示 Hello字符串。

结束。

 

补充:第二种设定控件变量,以便其他控件能用的方法是

(1)   Ctrl + 控件 拉动到h文件里面,生成

property (assign) IBOutlet NSTextField*m_Edit_Name2;拷贝这行代码,然后在

@interface 的下一行增加{}

在{}里面粘贴刚才拷贝的代码,去掉property (assign) 就可以了。

这样就不用再在m文件里手动写:@synthesize m_Edit_Name2;

两种方法的好坏我现在无法评价,如果从程序的一次书写多次使用的特性,我喜欢用第二种设定控件变量的方法。这种方法也稍微接近C++

但是按照操作简易来说,专门在m里面再写一次,也不错。但是理解上有点绕口。

测试编译,成功!

结束。

后面还有很长的路要走,慢慢摸索吧。

代码如下

H文件

#import <Cocoa/Cocoa.h>@interface QXSAppDelegate : NSObject <NSApplicationDelegate>{     IBOutlet NSTextField *m_Edit_Name2;}@property (assign) IBOutlet NSWindow *window;@property (assign) IBOutlet NSTextField *m_Edit_Name1;@end


M文件


#import "QXSAppDelegate.h"@implementation QXSAppDelegate@synthesize m_Edit_Name1;- (void)dealloc{    [super dealloc];}- (void)applicationDidFinishLaunching:(NSNotification *)aNotification{    // Insert code here to initialize your application}- (IBAction)OnBT_Change1:(id)sender{   m_Edit_Name1.stringValue = @"Orange";}- (IBAction)OnBT_Change2:(id)sender{    NSString *str_Edit2_Value;    str_Edit2_Value = @"Apple";    m_Edit_Name2.stringValue = str_Edit2_Value;}- (IBAction)OnBT_OK:(id)sender{    }- (IBAction)OnBT_Cancel:(id)sender{    }@end


结束。

 

 

 

 

0 0
原创粉丝点击