0

複数の動的テーブルビューセルを含むテーブルビューがあり、各テーブルビューセル内に複数のテキストフィールドがあります。各セルには異なるタグがありますが、texfieldにはありません。そして、ユーザーが後で挿入する情報を取得する必要があります。私はInterfaceBuilderを使用しています。

タグ付けされていないtexfieldにアクセスすることは可能ですか?

「ユーザー定義のランタイム属性」を使用してこれを管理できますか?

ありがとう

4

2 に答える 2

2

これは、iOSを使い始めるときによくある間違いです。

特にテーブルビューで、テキストフィールドに格納されている情報を取得するために、テキストフィールドを直接参照しないでください。テーブルビューでは、セルが画面からスクロールアウトすると、セルが再利用される可能性が高く、そこに保存されていた情報は永久に失われます。

代わりに、ユーザーがビューコントローラをテキストフィールドデリゲートとして設定し、textFieldDidEndEditing:デリゲートメソッドを実装して、テキストフィールドの編集が終了したときにテキストを保存します。

- (void)textFieldDidEndEditing:(UITextField *)textField
{
    // Store the textField.text value somewhere for later use.
}
于 2012-08-01T16:28:02.927 に答える
0

各セルのサブビューに目を通し、次のようなUITextFieldかどうかを確認できます。

for (UIView *subview in cell.subviews) {
    if ([subview isKindOfClass:[UITextField class]]) {
        // do something with the text field...
    }
}  

そうは言っても、これはおそらく最善のアプローチではありません... Uは、各textFieldにタグを付けるか、プロパティとしてtextFieldsを持つカスタムセルでセルをサブクラス化する方が適切です。

于 2012-08-01T16:18:35.567 に答える