开发者

How to get UITextField values when button is clicked

I have this view:

How to get UITextField values when button is clicked

and these implementations:

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

    static NSString *CellIdentifier = @"Cell";

    UITableViewCell *cell = [self.tableLogin dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault 
                                       reuseIdentifier:CellIdentifier] autorelease];
        cell.accessoryType = UITableViewCellAccessoryNone;
        cell.selectionStyle = UITableViewCellSelectionStyleNone;

        if ([indexPath section] == 0) {
            UITextField *textfield = [[UITextField alloc] initWithFrame:CGRectMake(110, 10, 165, 30)];
            textfield.adjustsFontSizeToFitWidth = YES;
            textfield.textColor = [UIColor blackColor];
            textfield.backgroundColor = [UIColor whiteColor];
            textfield.autocorrectionType = UITextAutocorrectionTypeNo;
            textfield.autocapitalizationType = UITextAutocapitalizationTypeNone;
            textfield.textAlignment = UITextAlignmentLeft;
            textfield.clearButtonMode = UITextFieldViewModeNever;
            textfield.delegate = self;

            if ([indexPath row] == 0) {
                textfield.tag = 0;
                textfield.placeholder = @"your username";
                textfield.keyboardType = UIKeyboardTypeDefault;
                textfield.returnKeyType = UIReturnKeyNext;
            }
            else {
                textfield.tag = 1;
                textfield.placeholder = @"required";
                textfield.keyboardType = UIKeyboardTypeDefault;
                textfield.returnKeyType = UIReturnKeyDone;
                textfield.secureTextEntry = YES;
            }

            [textfield setEnabled:YES];
            [cell addSubview:textfield];
            [textfield release];
        }
    }
    if ([indexPath section] == 0) {
        if ([indexPath row] == 0) {
            cell.textLabel.text = @"Email";
        }
        else {
            cell.textLabel.text = @"Password";
        }
    }

    return cell;    
}

- (BOOL)textFieldShouldReturn:(UITextField *)textField
{
    switch (textField.tag) {
        case 0开发者_C百科:
            self.username = textField.text;
            break;
        case 1:
            self.password = textField.text;
            break;
    }
    return true;
}

When the user click Login button without tap "Done" for close the keyboard it doesn't save the field values. How can I tricky-fix this?


Two options:

Keep a reference to both textfields and pull their text values in the "Done" button's action method.

Alternatively, register for the UITextFieldTextDidChangeNotification and capture input as it happens.


You can use - (void)textFieldDidEndEditing:(UITextField *)textField and save your values there, in addition to hitting the return key.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜