3

いくつかの説明を入力するための編集可能なテキストビューがあります。テキストビューをクリックすると、キーボードが表示されます。私の問題は、キーボードからテキストを入力しようとすると、テキストビューに表示されないことです。よろしくお願いします。

4

3 に答える 3

5

あなたはNOを返すべきではありません...

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

そうしないと、テキストを追加できなくなります。

編集:TextView参照から:

textView:shouldChangeTextInRange:replacementText:指定されたテキストをテキストビューで置き換える必要があるかどうかをデリゲートに尋ねます。

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

パラメーター:

textView:変更を含むテキストビュー。

range:現在の選択範囲。範囲の長さが0の場合、範囲は現在の挿入ポイントを反映します。ユーザーがDeleteキーを押すと、範囲の長さは1になり、空の文字列オブジェクトがその1文字に置き換わります。

text:挿入するテキスト。

戻り値:古いテキストを新しいテキストに置き換える必要がある場合はYES。交換操作を中止する必要がある場合はNO。

于 2012-07-05T05:34:06.723 に答える
2

このデリゲートメソッドではYESを返す必要があります。そうしないと、デリゲートするフィールドにテキストが許可されなくなります。たとえば、次のようになります。

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

    if([text isEqualToString:@"\n"]) {
        [m_CtrlTxtViewDescription resignFirstResponder];
        [self setViewMovedUp:NO];
        return NO;
    }    
    return YES;
}

shouldChangeTextInRange...、名前が示すように、テキストがキーボードを介して追加されたときにテキストビューが呼び出すメソッドです。参加者は、テキストを追加する必要があるかどうかを尋ねられます。

于 2012-07-05T05:35:35.257 に答える