Cocoa Programming-应用创建及控件连接

版权声明:本文为博主原创文章,转载时必须注明原文链接 https://blog.csdn.net/zzl819954692/article/details/85019702

Cocoa Programming系列文章是博主基于YouTube 视频学习后的自我总结,属于入门级课程,部分内容不具体,请参考原视频。视频链接Cocoa Programming

开发环境介绍

目前MacOS开发最基本的IDE是Xcode,身边认识的所有开发同事均使用该软件进行开发,其与IDE博主未使用,在此不详细介绍,本次课程学习以Xcode开发工具为主。首先,我们从创建一个应用程序开始。

创建项目

打开Xcode,创建项目,界面如图所示:
在这里插入图片描述
创建项目信息如图所示:

项目信息

搭建界面

Xcode基本构成不做详细介绍,在开发过程中使用后会明白各部分的功能和作用。搭建页面如图所示:
在这里插入图片描述

连接页面与代码

本示例中用单独的类控制页面交互,因此按如下步骤对页面进行管理。

建立连接

  1. 创建AppController类管理页面交互
    在这里插入图片描述

  2. 将Object对象拖入xib中,并在Identity inspector中将类改为APPController。在这里插入图片描述

  3. 为控件建立属性及事件
    在AppController中添加label的成员属性及按钮点击事件:

@interface AppController : NSObject {
    IBOutlet NSTextField *_label;
}
-(IBAction)btnClicket:(id)sender;
@end
  1. control单击Object对象,将_label属性拖到界面label上。
    在这里插入图片描述
  2. 同理,将Object(AppDelegate)的按钮点击事件连接到对应的按钮上。
  3. AppController.m文件中执行按钮事件。
-(IBAction)btnClicket:(id)sender {
    [_label setStringValue:@"I love software"];
}

7.点击按钮, 界面显示结果如图所示:
在这里插入图片描述

初始化操作

很多情况下,xib中的设置不满足我们的要求,因此,我们需要在界面显示之前通过代码初始化部分业务。那么如何初始化呢?

Typically, you implement awakeFromNib for objects that require additional set up that cannot be done at design time. For example, you might use this method to customize the default configuration of any controls to match user preferences or the values in other controls. You might also use it to restore individual controls to some previous state of your application.
由于该类在xib文件中初始化,因此使用init方法初始化无效,只能通过awakeFromNib方法进行初始化。
AppController.m示例代码如下:

 - (void)awakeFromNib {
    [super awakeFromNib];
    [_label setFont:[NSFont fontWithName:@"Tahoma" size:18]];
    [_label  setTextColor:[NSColor blueColor]];
    [_label setBackgroundColor:[NSColor grayColor]];
    [_label setDrawsBackground:YES];
}

页面效果如图所示:在这里插入图片描述

窗口大小及控件缩放

窗口大小属性

选择窗口,在Size attribute属性栏设置窗口相关的设置。本例中设置窗口的最小大小和初始位置。如图所示:
在这里插入图片描述

控件约束简要设置

控件的约束设置根据选择的方式不同而不同,打开和关闭Autolayout的方法如下:
在这里插入图片描述
根据是否打开Autolayout,添加约束的方法主要分为以下两种:

  • 未使用Autolayout
    未使用Autolayout时,为按钮添加约束,设置按钮随窗口下移,左右间距固定,设置如下:
    在这里插入图片描述
  • 使用autolayout
    使用Autolayout时,实现上述按钮约束,设置如下:
    在这里插入图片描述
    效果如图所示:在这里插入图片描述
    同理为label添加约束如图所示:
    在这里插入图片描述
    最终,实现效果如图所示:
    在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/zzl819954692/article/details/85019702
今日推荐