如何退回iPhone键盘

时间:2012-09-19 16:34:33

标签: iphone objective-c ios xcode keyboard

故事板场景是这样的:

UITableViewController UITableView,其中包含自定义原型UITableViewCellAddInfoCell

我在UITextView中放置了一个可编辑的AddInfoCell

要返回键盘,我会将以下代码放在UIViewController课程中,并使用选项UITextView将其连接到DidEndOnExit

- (IBAction)textFieldReturn:(id)sender {
    [sender resignFirstResponder];
}

但由于UITextView类位于AddInfoCell类,因此无法找到适合此代码的地方。

它无法与UITextView类或TableViewController类中的AddInfoCell连接。

我还尝试为TextViewController创建一个UITextView类,并将textFieldReturn代码放在那里,但我仍无法将其连接到故事板中。

那么有关如何在这种情况下返回键盘的任何建议吗?

这是创建AddInfoCell的地方:

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

AddInfoCell *addInfoCell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier];

if (addInfoCell == nil) {
    addInfoCell = [[AddInfoCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentifier];
}
return addInfoCell;

}

2 个答案:

答案 0 :(得分:2)

使用UITextViewDelegate委托。

- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text {

    if([text isEqualToString:@"\n"]) {
        [textView resignFirstResponder];
        return NO;
    }

    return YES;
}

同时添加此方法:

 -(BOOL)textViewShouldReturn:(UITextView *)textView {
   [textView resignFirstResponder];
   return YES;
  }

答案 1 :(得分:0)

addInfoCell.cellTextView.delegate = self;