2012-02-01 8 views
7

私は自分のお気に入りのWebページを保存してメニューをより簡単にナビゲートできる、「お気に入りページ」メニューを作成しています。ユーザーがUITableViewセル内のテキストを編集できるようにする

「編集」というボタンをユーザーがクリックできるようにするリンクを覚えやすくするために、名前を編集するセルを選択してから新しい名前を入力し、私は現在、リンクデータを保存するための組み込みの設定アプリケーションを使用しています。

私は今質問した内容のすべてを知る必要はありません。私は、ユーザーがテーブルビューのセルテキストを編集することが可能かどうか、またそのためにどのメソッドを使用するのかを知りたいだけです。

私は、同様の理由をカバーする他の質問を見てきましたが、一般的にもっとプログラム的な基礎からです。

+0

可能重複(http://stackoverflow.com/questions/7064525/editable-uitableview-with-a-textfield- on-each-cell) –

+0

@Jimありがとうございますが、その投稿は常に埋め込まれたテキストフィールドを参照しています。 – DGund

答えて

7

ユーザは、テーブルビューのセルテキストを直接編集することはできません。 (技術的には、cell.textLabel.textとなります)。ただし、「編集」モードに入ると、現在の値があらかじめ入力されているセル(またはモーダルビュー)にUITextFieldを簡単に表示し、編集して保存してからcell.textLabelを更新できます。あなた自身のテキスト値。

+0

論理的な回避策のようです。 – DGund

-1

私は、tabelview cell editstyleを使用するのが最善の方法だと思います。 tableview delegate set cell editstyleを使用できます。ユーザーがセルを編集するときに、何か必要なことを行うことができます。 セットセルのスタイルで:

- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath 
+0

これは「編集」と同じ種類ではありません。この種の編集は、セルを移動すること、または削除することを指します。 @Rayfleckは何について言ったのですか? – Rayfleck

+0

-1この回答を削除することは正しい回答かもしれませんし、コメントに返答することもできます。 –

6

あなたUITableView細胞は、ここで作成されているため、通常は、

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 

(代表者の1を:ユーザクリック編集ボタンにするとき

- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath 

- (NSString *)tableView:(UITableView *)tableView titleForDeleteConfirmationButtonForRowAtIndexPath:(NSIndexPath *)indexPath 

は物事を行いますUITableView)。

UITableViewCellをサブクラス化してtextプロパティを公開する場合は、UITextFieldインスタンスをセルに保持するなど、必要な処理を行うことができます。通常どおりデキューするようにしてください。その後

、ユーザーはUITableViewCellあなたがUITextFieldにフォーカスを与えることができます触れる:

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { 
    [self.thatTextFieldIMentioned becomeFirstResponder]; 
} 

あなたはUITableViewCellUITextFieldDelegateをサブクラス化し、テキストフィールドのためにそれデリゲート作る作る場合、あなたは簡単にこれらを処理することができますうるさく覚えにくい方法:[各セルのテキストフィールドで編集可能なのUITableView]の

- (void)textFieldDidEndEditing:(UITextField *)textField { 
    NSLog(@"yeah inform someone of my change %@", textField.text); 
} 

- (BOOL)textFieldShouldClear:(UITextField *)textField { 
    return YES; 
} 

- (BOOL)textFieldShouldReturn:(UITextField *)textField { 
    [textField resignFirstResponder]; 
    return YES; 
} 
関連する問題