uitextview键盘隐藏错误

时间:2012-09-14 10:20:52

标签: iphone ios uitextview

在我的应用程序中使用UITextView中的UIScrollView,我添加了要隐藏的代码,它无效。这是我的代码

-(BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text
{
if([text isEqualToString:@"\n"])
    [txt1 resignFirstResponder];
return YES;
}

7 个答案:

答案 0 :(得分:1)

这是你的答案: -

-(BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text
{
if([text isEqualToString:@"\n"])
    [textView resignFirstResponder];
return YES;
}

resignFirstResponder中将使用UITextView引用。您已经提供了

[text resignFirstResponder];

哪个不起作用。

答案 1 :(得分:0)

你应该返回false。喜欢: - (假设txt1是你的文本视图的obj)

-(BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text
{
if([text isEqualToString:@"\n"])
    [txt1 resignFirstResponder]; // OR [textView resignFirstResponder];
return FALSE;
}

答案 2 :(得分:0)

您可以使用以下代码:

-(void)touchesBegan :(NSSet *)touches withEvent:(UIEvent *)event
{

    [self.view resignFirstResponder];

    [scrollView resignFirstResponder];

}

然后你可以触摸除textView之外的任何其他地方以隐藏键盘。

答案 3 :(得分:0)

这样做,

- (BOOL)textViewShouldReturn:(UITextView *)textView
{
    // the user pressed the "Done" button, so dismiss the keyboard
    [textView resignFirstResponder];
    return YES;
}

-(BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text
{
  if([text isEqualToString:@"\n"]) //Resign for return Key
  {
    [textView resignFirstResponder];
  }
  return YES;
}

答案 4 :(得分:0)

使用此代码: -

- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text
{
    if([text isEqualToString:@"\n"])
    {
        [txtView resignFirstResponder];
        return NO;
    }
    return YES;
}

答案 5 :(得分:0)

如果您想使用输入键按下每个文本视图,请使用波纹管代码..

- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text
{
    if([text isEqualToString:@"\n"])
    {
        [textView resignFirstResponder];
        return NO;
    }
    return YES;
}

答案 6 :(得分:0)

您的代码没问题。只需替换

[txt1 resignFirstResponder];

[textView resignFirstResponder];

并确保您的textView代表设置为YES其他明智的delegate方法不会被调用。

textView.delegate = self;

如果您从textView XIB,然后按住Ctrl +拖动textView转到File'sO Owner并设置其delegate }。它肯定会起作用。