<ios开发入门> iTahDoodle任务管理程序

最近在学习<objective-c编程>这本书,根据书中的教程编写了这个简单Ios小程序iTahDoodle.这是一个简单的任务管理程序.可以通过"Insert"按钮来插入.后通过查阅官方文档,增加了delete的功能.

iTahDoodle共应用到了四个UI控件:两个Button分别用来插入,删除,一个TextField用来输入任务,一个TableView来显示任务列表.iTahDoodle需要将用户的任务信息保存在property list格式(xml格式)的文件中,因此需要使用一个C辅助函数来返回该文件的路径(NSString对象).

NSString *docPath()
{
    NSArray *pathList=NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    
    return [[pathList objectAtIndex:0] stringByAppendingPathComponent:@"data.td"];
}

 

<Xcode可以识别#pragma mark指令,并根据该指令为文件中的代码分组.可以使用此命令来为代码分块.>

应用启动时时无法工作或接受输入的,启动完成后,UIApplication实例会向其委托对象发送<application:didFinishLaunchingWithOptions:>消息.凡是需要在程序能够和用户交互前就完成的初始化工作,都应该在该方法中实现.

增加和删除任务的代码如下

-(void)addTask:(id)sender
{
    //获取新任务的文字描述
    NSString *t=[taskField text];
    
    //如果taskField没有内容,就直接返回
    if([t isEqualToString:@""]){
        return;
    }
    
    //将新任务(字符串)加入tasks数组
    [tasks addObject:t];
    //刷新视图表格,显示新加入的任务
    [taskTable reloadData];
    //清空taskField
    [taskField setText:@""];
    //关闭键盘
    [taskField resignFirstResponder];
}

-(void)deleteTask:(id)sender
{
//indexPathForSelectedRow方法可以返回被选中的行存储的信息在数组中的位置
int numOfSelectedCell =[taskTable indexPathForSelectedRow].row; [tasks removeObjectAtIndex:numOfSelectedCell]; [taskTable reloadData]; }

当用户按下某个UIControl对象,并且该对象可以成为第一相应对象,拥有第一响应对象状态的UIControl对象可以处理来自键盘的文字输入及摇动事件等,被按下的UIControl对象收到becomeFirstResponder消息,开始处理事件并保持这一状态,直到另一个响应对象的对象成为第一响应对象昂,或者是自己收到resignFirstResponder消息.表现在程序中就是当用户点击TextField的时候会弹出键盘,当点击done的时候,键盘会收起来.

 

最终效果如下,虽然很简陋,但终究是第一步.

   

posted @ 2014-01-01 16:35  闲心  阅读(779)  评论(0)    收藏  举报