0

ここに画像の説明を入力してください

私はiPhone開発に不慣れで、カスタムセル付きのテーブルビューがあり、カスタムセルにラベルとテキストファイルが含まれているアプリを開発しています。これは私の登録画面です。テキストフィールドのデータを保存する方法と、テキストの検証を行う方法です。テキストフィールドの編集では、データを保存できます。しかし、最初に提出したユーザーが名前を入力してから[完了]ボタンをクリックすると、データを保存しているので、名前を入力してくださいと表示されます。ユーザーがテキストフィールドにいるときにデータを保存したい。

4

3 に答える 3

0

コントローラをセルのtextFieldのデリゲートにしてから、これらのメソッドをコントローラに実装します。

- (void)textFieldDidEndEditing:(UITextField *)textField
{    
    NSInteger tag = [textField tag];
if(tag == 0) {
//save first name text value
}
else if (tag == 1){
//save last name text value
}
else if etc....
}

- (BOOL)textFieldShouldReturn:(UITextField *)textField
{
    [textField resignFirstResponder];
    return YES;
}

セルを返すときは、タグを適切に設定してください。

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

また、キーボードを次/前のボタンでフォームハンドラーのように動作させる方法について調査することもできます。

于 2012-05-10T07:37:12.153 に答える
0

Register.h

@interface Register : NSObject {
    NSString *_firstNameTxt;
    NSString *_lastNameTxt;
NSString *_emailTxt;
    NSString *_passwordTxt;
}

@property (nonatomic, retain) NSString * firstNameTxt;
@property (nonatomic, retain) NSString * lastNameTxt;
@property (nonatomic, retain) NSString * emailTxt;
@property (nonatomic, retain) NSString * passwordTxt;
@end

Register.m

@implementation Register
@synthesize firstNameTxt=_firstNameTxt;
@synthesize lastNameTxt =_lastNameTxt ;
@synthesize emailTxt=_emailTxt;
@synthesize passwordTxt= _passwordTxt;

- (void)dealloc{
[super dealloc];
 [_firstNameTxt release];
 [_lastNameTxt  release];
 [_emailTxt  release];
 [_passwordTxt  release];
 }
 @end

RegisterViewController.h

@class Register;

@interface RegisterViewController : UIViewController {
    Register *objRegister;
}

RegisterViewController.m

- (void)viewDidLoad {
[super viewDidLoad];
  objRegister = [[Register alloc] init];
}

テーブルビューデリゲート

[txtFirstName setText:objRegister.firstNameTxt];
[txtLastName setText:objRegister.lastNameTxt];

-(void) textFieldDidEndEditing:(UITextField *)textField{
// do the same code as Warren Burton Post

 }
于 2012-05-24T12:11:45.010 に答える
0

このメソッドを使用して、テキストを格納するモデルクラスオブジェクトを使用して、現在のテキストフィールドテキストをトレースできます。

- (BOOL)textField:(UITextField *)theTextField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{
    NSString *characterSet = nil; 
    switch (theTextField.tag) 
    {
        case 1:
            characterSet = @"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz ";
            [sharedInstance.registrationDetails setFirstName:theTextField.text];


            default:
            characterSet = @"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789?/!@#$&*.,-:; _";
            break;
    }
    NSCharacterSet *myCharSet = [NSCharacterSet characterSetWithCharactersInString:characterSet];
    for (int i = 0; i < [string length]; i++)
    {
        unichar c = [string characterAtIndex:i];
        if (![myCharSet characterIsMember:c]) 
        {
            return NO;
        }
    }
    return YES;
} 
于 2012-05-25T10:35:43.907 に答える