Пользовательский TableViewCell с TextField и первым респондентом - PullRequest
0 голосов
/ 16 июля 2009

У меня есть пользовательская ячейка TableView, которая содержит TextField, и я хочу, чтобы она стала первым респондентом, как только представление отобразится, но [textcell.textfield становитьсяFirstResponder] не работает. Я знаю, это потому, что это обычная ячейка в другом классе, и я даже попробовал ее там, и она не сработала. Кто-нибудь знает, как это осуществить?

Спасибо ...

Ответы [ 2 ]

0 голосов
/ 12 августа 2012
- (void) viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:animated];
    self.navigationController.toolbarHidden = YES;
    self.title = @"Login";

    [NSTimer scheduledTimerWithTimeInterval:0.1
                                     target:self
                                   selector:@selector(doSetFirstResponder)
                                   userInfo:nil
                                    repeats:NO];
}

- (void) doSetFirstResponder {
    [_usernameField becomeFirstResponder];
}
0 голосов
/ 30 августа 2009

У меня есть аналогичная настройка, и кажется, что стал стал первым, и работает нормально.

Моя пользовательская ячейка:

@interface CustomCell : UITableViewCell 
{
    IBOutlet UITextField *costField;
}

И метод делегата из класса контроллера:

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString* CellTableIdentifer = @"CellTableIdentifer";

    CustomCell *cell = (CustomCell *)[tableView dequeueReusableCellWithIdentifier:CellTableIdentifer];
    if (cell == nil)
    {
        NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"CustomCell" owner:self options:nil];
        cell = [nib objectAtIndex:0];
    }

    NSUInteger row = [indexPath row];
    ReceiptItem *receiptItem = [models objectAtIndex:row];
    if (receiptItem == justAddedItem)
    {
        [cell.costField becomeFirstResponder];
        justAddedItem = nil;
    }

justAddedItem устанавливается, когда пользователь нажимает кнопку, чтобы добавить новую строку в таблицу.

...