2011-06-12 43 views
1

我似乎無法找到什麼應該是一個簡單的問題的任何信息。我有一個包含一系列單元格的表格。當你點擊單元格時,它會詳細顯示該對象的信息。我知道有可能有一個按鈕,將所有的數據放在屏幕上編輯模式。任何教程或建議如何做到這一點(正確/最佳實踐)?編輯一個UIViewController

只是要明確這是iPhone/Objective-C/Cocoa。

謝謝,

EDIT 1

對不起。我知道如何把按鈕放在那裏。但是如何使標籤可編輯?

回答

1

您不能有可編輯的標籤。但是,按下按鈕後,您可以用文本字段替換標籤,然後在完成後更新標籤。

這樣做的一種方法如下。在與標籤相同的位置創建文本字段,並初始設置textField.hidden = YES;。然後執行這些方針的東西:

-(IBAction)editMyCell:(id)sender { 
    textField.text = cellLabel.text; 
    cellLabel.hidden = YES; 
    textField.hidden = NO; 
    [textField becomeFirstResponder]; 
} 

當編輯完成後,用

-(void)textFieldDidEndEditing:(UITextField *)textField { 
    cellLabel.text = textField.text; 
    textField.hidden = YES; 
    cellLabel.hidden = NO; 
    [textField resignFirstResponder]; 
} 

你可能需要調整這個想法有點您的情況恢復,但它可能是最簡單要實現的東西能夠實現你所追求的目標。

+0

這似乎是一個很好的途徑。任何關於最佳方式的建議:) – 2011-06-12 15:31:56

+0

您可以創建與標籤大小和位置相同的文本字段。然後將其設置爲HIDDEN直到編輯,此時您將標籤設置爲HIDDEN,然後再次返回。編輯開始時,務必將TF的文本同標籤的文本同步,反之即可。 – PengOne 2011-06-12 15:34:18

0

在編輯UIViewController時,基礎sdk中沒有任何內容。通常這種邏輯是由程序員定義的。但我可以看到有人正在編寫一個函數,將UIView中的所有UILabel轉換爲UITextViews,以便用戶可以編輯文本。

這裏可能有示例代碼,但這對我來說就像是自定義代碼。

2

你是混淆兩種狀態:

  1. 把進入的tableView編輯模式 - 這是刪除,或在表中走動細胞,無論單元格內容。這由UITableView.editing屬性控制。 和

  2. 將tableViewCell放入某種編輯狀態。該單元格沒有正式的編輯狀態(即沒有單個標誌設置爲使單元格中的所有UILabel成爲可編輯的textFields)。您需要自己實現所有這些邏輯。如果您使用的是.xibs,這裏最好的做法是爲您的單元格的編輯模式提供一個不同的.xib。