0

在此处输入图像描述

我是 iPhone 开发的新手,我正在开发一个应用程序,如果我有带有自定义单元格的表格视图,我的自定义单元格包含标签和文本文件。这是我的注册屏幕,如何保存我的文本字段的数据以及如何对文本进行验证。在文本字段 endediting 中,我们可以保存数据。但是如果用户在第一个文件中输入姓名,然后单击完成按钮,它将显示请输入名字,因为我正在将数据保存在 didendediting 中。当用户在文本字段上时,我想保存数据。

4

3 回答 3

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 回答
0

使控制器成为单元格文本字段的代表,然后在控制器中实现这些方法。

- (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

寄存器.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

注册.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

注册视图控制器.h

@class Register;

@interface RegisterViewController : UIViewController {
    Register *objRegister;
}

注册视图控制器.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 回答