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