UITextview - UIKeyboard解雇

时间:2013-01-25 12:50:45

标签: ios uitextview uikeyboard

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

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

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

方法,但这有问题。

这可能吗?

5 个答案:

答案 0 :(得分:2)

<强>夫特:

func textView(textView: UITextView, shouldChangeTextInRange range: NSRange, replacementText text: String) -> Bool {
    if text == "\n" {
        theTextView.resignFirstResponder()
        return false
    }
    return true
}

答案 1 :(得分:1)

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

答案 2 :(得分:1)

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

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

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

        return YES;
}

答案 3 :(得分: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方法中你可以让第一个响应者辞职。

希望这有帮助。

干杯!

答案 4 :(得分:0)

在键盘的临时视图上添加完成按钮,并使用

实现完成方法
  [textView resignFirstResponder];

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