iphone键盘赢得';不出现

iphone键盘赢得';不出现,iphone,keyboard,Iphone,Keyboard,我可以单击该字段,它会立即变为蓝色,但这些事件加上makeFirstResponder不会导致键盘显示在UITextField上 普通代码如下;我将其包括在内,以便其他人能够识别不存在的内容,从而推测出解决问题的方法 我在前导空格中添加了类似于代码的格式,但解析器似乎已将它们剥离,从而留下左对齐的代码。对不起 UITextFieldDelete,选中: @interface RevenueViewController : UIViewController <UITableViewDeleg

我可以单击该字段,它会立即变为蓝色,但这些事件加上makeFirstResponder不会导致键盘显示在UITextField上

普通代码如下;我将其包括在内,以便其他人能够识别不存在的内容,从而推测出解决问题的方法

我在前导空格中添加了类似于代码的格式,但解析器似乎已将它们剥离,从而留下左对齐的代码。对不起

UITextFieldDelete,选中:

@interface RevenueViewController : UIViewController <UITableViewDelegate, UITableViewDataSource, UITextFieldDelegate> {
委托和来源,检查

-(void)loadView;
  // code
  CGRect frameTable = CGRectMake(10,0,300,260);
  theTableView = [[UITableView alloc] initWithFrame:frameTable style:UITableViewStyleGrouped];
  [theTableView setDelegate:self];
  [theTableView setDataSource:self];
  // code
  [self.view addSubview:theTableView];
  [super viewDidLoad];
}
将UITextField插入单元格,选中

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
NSInteger sectionNmbr = [indexPath section];
NSInteger rowNmbr = [indexPath row];
NSLog(@"cellForRowAtIndexPath=%d, %d",sectionNmbr,rowNmbr);
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
}
// Configure the cell. 
switch (sectionNmbr) {
case 0: 
   if (rowNmbr == 0) {
   cell.tag = 1;
   cell.textLabel.text = @"Label for sctn 0, row 0";
   UITextField *tf = [[UITextField alloc] init];
   tf.keyboardType = UIKeyboardTypeNumberPad;
   tf.returnKeyType = UIReturnKeyDone;
   tf.delegate = self;
   [cell.contentView addSubview:tf];
  }
if (rowNmbr == 1) {
cell.tag = 2;
cell.textLabel.text = @"Label for sctn 0, row 1";
cell.accessoryType = UITableViewCellAccessoryDetailDisclosureButton;
} 打破 } }

成功地到达我们想要的地方(?),无需检查,(也无需键盘!):

} 打破 案例1: //代码 打破 违约: //处理否则未处理的异常 打破 } }

谢谢你的见解

你确定吗

[[cellSelected.contentView subviews] objectAtIndex: 0];
返回的是你所期望的吗?尝试使用调试器检查它

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
NSLog(@"didSelectRowAtIndexPath");
switch (indexPath.section) {
case 0: 
NSLog(@"  section=0, rowNmbr=%d",indexPath.row);
switch (indexPath.row) {
case 0:
UITableViewCell *cellSelected = [tableView cellForRowAtIndexPath: indexPath];
UITextField *textField = [[cellSelected.contentView subviews] objectAtIndex: 0];
[ textField setEnabled: YES ];
[textField becomeFirstResponder];
// here is where keyboard will appear?
[tableView deselectRowAtIndexPath: indexPath animated: NO];
break;
case 1:
// code
break;
default:
break;
[[cellSelected.contentView subviews] objectAtIndex: 0];