【问题标题】:How to put a UITextField inside of a UITableViewCell (grouped)?如何将 UITextField 放在 UITableViewCell 内(分组)?
【发布时间】:2011-01-30 01:16:54
【问题描述】:

如何将 UITextField 放在 UITableViewCell 内(分组)?我希望用户能够对其进行编辑。

【问题讨论】:

    标签: iphone xcode uitableview uitextfield


    【解决方案1】:

    这就是我在我的应用程序中实现它的方式,但是您显然需要更改一些内容。希望这会有所帮助。

    - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    
    static NSString *CellIdentifier = @"Cell";
    
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
    }
    
    // Configure the cell.
    
    //adding all the UITextField's to the UITableViewCell is a pain in the ass. Pretty sure this is correct though.
    
    if ([indexPath section] == 0) {
        tUser = [[UITextField alloc] initWithFrame:CGRectMake(110, 10, 185, 30)];
        tUser.adjustsFontSizeToFitWidth = YES;
        tUser.textColor = [UIColor blackColor];
    
        tPass = [[UITextField alloc] initWithFrame:CGRectMake(110, 10, 185, 30)];
        tPass.adjustsFontSizeToFitWidth = YES;
        tPass.textColor = [UIColor blackColor];
    
        if ([indexPath section] == 0) {
            if ([indexPath row] == 0) {
                tUser.placeholder = @"@JohnAppleseed";
                tUser.keyboardType = UIKeyboardTypeEmailAddress;
                tUser.returnKeyType = UIReturnKeyNext;
            }
            if ([indexPath row] == 1) {
                tPass.placeholder = @"Required";
                tPass.keyboardType = UIKeyboardTypeDefault;
                tPass.returnKeyType = UIReturnKeyDone;
                tPass.secureTextEntry = YES;
            }
        }
    
        tUser.backgroundColor = [UIColor whiteColor];
        tUser.autocorrectionType = UITextAutocorrectionTypeNo;
        tUser.autocapitalizationType = UITextAutocapitalizationTypeNone;
        tUser.textAlignment = UITextAlignmentLeft;
    
        tPass.backgroundColor = [UIColor whiteColor];
        tPass.autocorrectionType = UITextAutocorrectionTypeNo;
        tPass.autocapitalizationType = UITextAutocapitalizationTypeNone;
        tPass.textAlignment = UITextAlignmentLeft;
    
        tUser.clearButtonMode = UITextFieldViewModeNever;
        tPass.clearButtonMode = UITextFieldViewModeNever;
    
        [tUser setEnabled:YES];
        [tPass setEnabled:YES];
    
        //[tUser release];
        //[tPass release];
    }
    if ([indexPath section] == 0) { // Email & Password Section
        if ([indexPath row] == 0) { // Email
            cell.textLabel.text = @"Username";
            [cell addSubview:tUser];
            [tUser setText:[[NSUserDefaults standardUserDefaults] objectForKey:@"twitter_name_preference"]];
        }
        else {
            cell.textLabel.text = @"Password";
            [cell addSubview:tPass];
            [tPass setText:[[NSUserDefaults standardUserDefaults] objectForKey:@"twitter_pass_preference"]];
        }
    }
    return cell; }
    

    希望对你有帮助。

    【讨论】:

      【解决方案2】:

      Apple 自己的 UICatalog 演示应用程序有一个将 UITextFields 放置在 Grouped UITableView Cells 中的示例:http://developer.apple.com/iphone/library/samplecode/UICatalog/index.html

      查看TextFieldController.m的内容

      此外,还有许多其他很棒的代码可用于处理 UIKit 对象。

      【讨论】:

        【解决方案3】:

        UITextField 添加为 UITableViewCell 的contentView 的子视图:

        [mycell.contentView addSubview:view];
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2019-11-27
          • 2020-02-17
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-07-28
          • 1970-01-01
          相关资源
          最近更新 更多