いくつかの説明を入力するための編集可能なテキストビューがあります。テキストビューをクリックすると、キーボードが表示されます。私の問題は、キーボードからテキストを入力しようとすると、テキストビューに表示されないことです。よろしくお願いします。
3 に答える
あなたは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。
このデリゲートメソッドでは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...
、名前が示すように、テキストがキーボードを介して追加されたときにテキストビューが呼び出すメソッドです。参加者は、テキストを追加する必要があるかどうかを尋ねられます。