iPhone 开发(一) Hello World 开始

一 、去官网上去下载 Xcode 4.2.1 for Lion 

      这是最新版的Xcode开发工具,里面已经包含了 iOS SDK: iOS 5 和  Mac SDK : Mac OS X 10.7



接着就是对Xcode 进行安装。


二、用模版构建我的Hello World 程序

    1、创建新项目  File -> New Project   来看看我们开始的视窗:



下面对七中开发模版一一介绍:

1、 Master - Detail Application  :This template provides a starting point for a master-detail application. It provides a user interface configured with a navigation controller to display a list of items and also a split view on iPad.


很多有过一些开发经验的程序员会发现现在为iPhone的Navigation(导航模式)和为iPad的Split(分割模式)的工程模板没有了,其实这个地方就是这两种工程的入口,如果你选择是iPhone版的Master-Detail Application,其实际生成的就是Navigation(导航模式),如果选择iPad,则为Split(分割模式)  



2、OpenGL Game (图形界面游戏编程):当使用OpenGL 编程时,只需要一个用于绘画的视图,以及一个提供心跳的计时器。

 

3、Page- Based Application :This template provides a starting point for a page-based application that uses a page view controller. 

这个是iOS5引入的一个新的类,page view controller,其翻页效果是基于OpenGLES实现的。 


4、Single View Application (相当与基于视图的应用程序): 基于视图的模版提供一个单视图的骨架。他提供了一个视图控制器来管理视图,还提供了一个空白的XIB,以使用自定义的GUI元件来填充视图。我们的Hello World 程序采用这种模版,次模版对应与旧版的View-Based Application.


5.Tabbed Application:This template provides a starting point for an application that uses a tab bar. It provides a user interface configured with a tab bar controller, and view controllers for the tab bar items.

这个就是大家熟悉的Tab Bar Application,值得一提的就是,现在控制Tab bar内容及其相关View controller都是使用代码来实现的。Tab bar从一开始就可以使用代码控制,不过大部分时候可以通过IB来定义,在XCode4.0之前和4.0中,IB在这个地方的使用方式不同。现在终于要放弃使用IB编辑了。 


6、utility Application:This template provides a starting point for a utility application that has a main view and an alternate view. For iPhone, it sets up an Info button to flip the main view to the alternate view. For iPad, it sets up an Info bar button that shows the alternate view in a popover.

这个唯一新增的就是支持iPad了,而且很少用到这个模板。 


7、Empty Application: This template provides a starting point for any application. It provides just an application delegate and a window.这个就是原来的Window-Based Application. 


如果我们想让用户在输入时有一些更好的体验,比如用户输入英文名时,默认会首字母大写;比如键盘会显示完成(Done)按键,点击后完成输入隐藏键盘。要支持这样的输入细节,通过设置文本框属性就可以完成:

  • 在Capitalization下拉列表,选择Words,以支持首字母大写
  • 在Return Key下拉列表,选择Done,以支持键盘上显示完成(Done)按键


保存文件后,编译运行程序,可以看到运行的界面效果和我们在Xcode中摆放的效果是一样的。点击按钮,按钮会高亮,在文本输入框中点击,会弹出输入键盘,键盘里可以看到完成(Done)按钮。但是还不能根据输入的内容去显示文字,还不能隐藏键盘,因为目前我们还仅仅完成了视图部分的工作,还需要让视图中的对象和视图控制器的对象之间建立连接,并添加相应的逻辑,才能实现。

IBOutlet是一个特殊的关键字,它唯一的作用是通知Interface Builder将某个实例变量或者属性当成插座变量。实际上,这个关键字被定义为空白,因此在编译的时候它没有任何作用。

// 检查输入的名字是否为空,如果为空,弹出提示信息

if (nameString.length == 0) {

UIAlertView *alertView = [[UIAlertViewalloc]initWithTitle:@"名字不能为空" message:@"请输入名字后,重新点击按钮。" delegate:nil cancelButtonTitle:@"确定"otherButtonTitles:nil, nil];

[alertView show];

[alertView release];

greetingLabel.text = @"";

return

}

  • UIAlertView是专门用来显示消息提示对话框
  • stringWithFormat:方法符串按照格式化字符串所指定的格式创建一个新字符串。%@表明此处应该使用一个字符串对象来代替。

       但是选择文本字段进行输入,您会发现您没有办法表示已完成输入,也没有办法消除键盘。在iPhone应用程序中,当一个允许文本输入的元素变成第一响应者时,键盘就会自动显示出来,而当该元素不再处于第一响应者状态,键盘就会消失。我们不能直接向键盘发送消息,但是可以切换文本输入元素的第一响应者状态,利用该操作的附加效果来显示或消除键盘。在应用程序中,当用户点击文本字段时,该控件就会变成第一响应者,因此键盘就会显示出来。而当用户点击键盘中的Done按键时,希望键盘消失。

UITextFieldDelegate协议包含一个textFieldShouldReturn:方法,一旦用户点击Return按键,文本字段就会调用该方法(和按键的标题无关)。但将视图控制器设置成文本输入框(UITextField)的委托(Delegate),才可以实现该方法,在方法中向文本字段发送resignFirstResponder消息,这个消息的附加效果会让键盘消失。

通过以下步骤设置文本输入框的委托(delegate)连接:

  1. 在Xcode中,选择视图控制器对应的Nib文件(Hello World View Controller)
  2. 按住Control键,点击文本输入框


3、在弹出的半透明面板中,选中 delegate 后面的圆点,并拖动到 File's Owner接下来,来实现将Hello World View Controller作为文本输入框stringTextField的委托(delegate)


(1)在视图控制器的头文件(Hello_WorldViewController.h)中,在UIViewController后面添加<UITextFieldDelegate>


 (2) 在视图控制器的实现文件(Hello_WorldViewController.m),实现 textFieldShouldReturn: 方法:


因为这个应用程序只有一个文本输入框,所以其实不需要包含stringTextField == textField检查。不过有些时候,对象可能会被设置成多个相同类型的对象的委托,这时候就需要来区分这些对象。


---------------------------------本文参考与http://www.cnblogs.com/dotey/archive/2011/06/09/2075954.html#2250632 这篇博客所使用的平台是Xcode4,且说明比较详细。本文使用的开发的开发平台是Xcode4.2 ,其中有少许区别。



按下Done键盘消失。

本文很杂乱,共同探讨ios开发和Android开发,加入群:179527285

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值