-1

私のアプリケーションで使用UITextViewしてUIScrollViewいる、非表示にするためのコードを追加しました、それは機能していません。ここに私のコードがあります

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

7 に答える 7

1

これがあなたの答えです:-

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

resignFirstResponderで参照して動作します。UITextViewあなたは次のように与えました

[text resignFirstResponder];

これは機能しません。

于 2012-09-14T10:24:59.107 に答える
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;
}
于 2012-09-14T10:25:14.580 に答える
0

次のコードを使用できます。

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

    [self.view resignFirstResponder];

    [scrollView resignFirstResponder];

}

次に、textView以外の場所にタッチして、キーボードを非表示にすることができます。

于 2012-09-14T10:26:18.770 に答える
0

このコードを使用してください:-

- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text
{
    if([text isEqualToString:@"\n"])
    {
        [txtView resignFirstResponder];
        return NO;
    }
    return YES;
}
于 2012-09-14T10:33:40.380 に答える
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;
}
于 2012-09-14T10:28:08.393 に答える
0

すべてのテキストビューでEnterキーを押してキーボードを辞める場合は、以下のコードを使用してください。

- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text
{
    if([text isEqualToString:@"\n"])
    {
        [textView resignFirstResponder];
        return NO;
    }
    return YES;
}
于 2012-09-14T10:37:00.000 に答える
0

あなたのコードは大丈夫です。交換するだけ

[txt1 resignFirstResponder];

[textView resignFirstResponder];

また、textViewデリゲートがYES他のdelegate方法で呼び出されないように設定されていることを確認してください。

textView.delegate = self;

textViewから取得されている場合はXIBctrl+dragからtextViewtoにドラッグしてFile'sO Owner設定しdelegateます。それは確かに機能します。

于 2012-09-14T10:55:52.633 に答える