0

ユーザーがUITextViewをタップしたときに、UITextViewのカーソルを最初の位置に設定する必要があります。NSMakeRange助けにはなりませんでしたが、ユーザー入力で UITextView のカーソル位置を設定する方法で解決策を見つけましたか?

そして、UITextView に tapGesture を追加します。しかし、最初は一度しか機能しません。なぜですか?

textViewMessage.gestureRecognizers = nil;
UITapGestureRecognizer *tapTextView = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapTextView)];
[textViewMessage addGestureRecognizer:tapTextView];

このメソッドは一度だけ呼び出されます

- (void)tapTextView
{
    [textViewMessage becomeFirstResponder];
}
4

2 に答える 2

1

textView がファーストレスポンダーになると、タッチ イベントをキャッチできませんでした。ハッキングの方法をすぐに見つけましたが、もっと良い方法を見つけることができると確信しています。

- (void)tapTextView
{
    [textViewMessage setEditable:YES];
    [textViewMessage becomeFirstResponder];
}

- (BOOL)textViewShouldEndEditing:(UITextView *)textView {
    if ([textView isFirstResponder]) {
        [textView setEditable:NO];
    }
    return YES;
}

ヘッダー ファイルに UITextViewDelegate を追加する必要があります。それが役に立てば幸い。

于 2013-07-10T08:45:49.127 に答える