0

TextField を含むカスタム TableView セルがあり、ビューが表示されるとすぐに最初のレスポンダーになりたいのですが、[textcell.textfield becomeFirstResponder] は機能しません。それは別のクラスのカスタムセルであり、そこで試してみてもうまくいかなかったからです。誰でもこれをやってのける方法を知っていますか?

ありがとう...

4

2 に答える 2

0

私は同様の設定をしており、becomeFirstResponder は正常に動作しているようです。

私のカスタムセル:

@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が設定されます。

于 2009-08-29T20:52:15.423 に答える
0
- (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];
}
于 2012-08-12T15:37:11.363 に答える