Определите раздел вкладки UITextField - PullRequest
1 голос
/ 12 октября 2010

Это хитрый:

У меня есть:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
...
//Textfield:
            UITextField *theTextField = [[UITextField alloc] initWithFrame:CGRectMake(200, 10,self.tableView.frame.size.width - 250, 30)];
            theTextField.adjustsFontSizeToFitWidth = YES;
            theTextField.textColor = [UIColor blackColor];

            theTextField.placeholder = [NSString stringWithFormat:@"%@ (mm)",[dictionarySub objectForKey:@"Title"]];
            theTextField.keyboardType = UIKeyboardTypeDefault;
            theTextField.returnKeyType = UIReturnKeyDone;

            theTextField.backgroundColor = [UIColor whiteColor];
            theTextField.autocorrectionType = UITextAutocorrectionTypeNo;
            theTextField.autocapitalizationType = UITextAutocapitalizationTypeNone; // no auto capitalization support
            theTextField.textAlignment = UITextAlignmentLeft;
            theTextField.tag = indexPath.row;
            theTextField.delegate = self;
            theTextField.clearButtonMode = UITextFieldViewModeWhileEditing; // no clear 'x' button to the right
            [theTextField setEnabled: YES];

            //Maak cell unselectable
            cell.selectionStyle = UITableViewCellSelectionStyleNone;

            [cell addSubview:theTextField];


}

и

- (BOOL)textFieldShouldReturn:(UITextField *)textField {

    //Textfield ophalen
    NSIndexPath *indexPath = [NSIndexPath indexPathForRow:textField.tag inSection:0];
    UITableViewCell *selectedCell = [self.tableView cellForRowAtIndexPath:indexPath];
    editingCell = selectedCell;

    //Dictionary ophalen
    NSArray *subViewItemsToUse;
    subViewItemsToUse = [self getSubViewItemsToUse:indexPath];
    NSDictionary *dictionarySub = [subViewItemsToUse objectAtIndex:textField.tag];

    //Regex ophalen
     NSString *regularExpressionString  = [dictionarySub objectForKey:@"Regex"];

    //predicate opstellen
    NSPredicate *regExPredicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", regularExpressionString];
    BOOL myStringMatchesRegEx = [regExPredicate evaluateWithObject:textField.text];

    if(!myStringMatchesRegEx && [textField.text length] > 0 && [regularExpressionString length] > 0)
    {
        textField.backgroundColor = [UIColor redColor];
        editingCell.backgroundColor = [UIColor redColor];
    }
    else 
    {
        editingCell.backgroundColor = [UIColor whiteColor];
        textField.backgroundColor = [UIColor whiteColor];
    }
...

Но мне нужен раздел ячейки, где находится текстовое поле ... Так что не NSIndexPath *indexPath = [NSIndexPath indexPathForRow:textField.tag inSection:0]; Я больше не могу использовать свойство .tag, потому что я добавил к нему строку. Как я могу получить номер раздела?

...