1

当我进入时,我必须关闭UIKeyboard输入“完成”按钮UITextView

注意:我用UITextView. 它工作正常,我想在 UITextview 中实现相同的概念。我试过了

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

方法,但这有问题。

这可能吗?

4

5 回答 5

2

迅速:

func textView(textView: UITextView, shouldChangeTextInRange range: NSRange, replacementText text: String) -> Bool {
    if text == "\n" {
        theTextView.resignFirstResponder()
        return false
    }
    return true
}
于 2015-01-14T01:12:43.460 回答
1

UITextView 没有完成按钮的选项,因为它需要有返回按钮。您可以按下返回按钮,但实际上并不推荐。编辑 UITextView 时关闭键盘的推荐方法是在主视图或其他元素上点击手势识别器。

于 2013-01-25T12:53:45.117 回答
1

使用以下代码,可能对您有用:)

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

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

        return YES;
}
于 2013-01-25T13:03:01.303 回答
1

Ivan Alek 是对的,UITextView需要返回按钮才能将光标移动到下一行。您可以在键盘上添加视图并从按钮关闭键盘。像这样:

UIToolbar       *toolbar    = [[[UIToolbar       alloc] initWithFrame:CGRectMake(0, 0, screenWidth, 30)] autorelease];
UIBarButtonItem *item2      = [[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(closeKeyboard)] autorelease];
UIBarButtonItem *item1      = [[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil] autorelease];

[toolbar setItems:[NSArray arrayWithObjects:item1 , item2, nil]];
[textView setInputAccessoryView:toolbar];

然后在该closeKeyboard方法中,您可以辞去第一响应者的职务。

希望这可以帮助。

干杯!

于 2013-01-25T13:20:08.457 回答
0

在键盘的辅助视图上添加完成按钮并实现完成方法

  [textView resignFirstResponder];

并且不要忘记为 textView 设置委托。

于 2013-01-25T13:18:45.563 回答