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