近在學習<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的時候,鍵盤會收起來.