質問

私はテーブルを持っていると私はUITextViewを維持する細胞の1インチユーザーがそれをタップするとキーボードが表示されます。私はそれを取り除くためのさまざまな方法を試みていました。私の最初のアプローチは、UITextViewのテーブルセルをタップを検出することだったが、テキストビューは、そのほとんどがかかるため、それは適切ではないのです。それから私は、ツールバーにボタンを追加しようとしましたが、ユーザーがそれを押すたび、keybordはresignFirstResponderで消えるが、それは動作しません。私がUITextView resignFirstResponder作品と同じビューにいる場合にのみ、ということらしいです。だから、どのように私は別のビューからキーボードを取り除くことができますか?

感謝します。

役に立ちましたか?

解決

以下の方法がUITextViewキーボードを閉じリターンキーを使用します。

あなたのコントローラでは、自己にUITextViewのデリゲートを設定します このような:

myTextView.delegate=self;

次に、このメソッドを追加します:

- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range 
 replacementText:(NSString *)text
{
 // Any new character added is passed in as the "text" parameter
 if ([text isEqualToString:@"\n"]) {
  // Be sure to test for equality using the "isEqualToString" message
  [textView resignFirstResponder];

  // Return FALSE so that the final '\n' character doesn't get added
  return FALSE;
 }
 // For any other character return TRUE so that the text gets added to the view
 return TRUE;
}
あなたは真のReturnキー(例えば、新しい行を追加すること)としてReturnキーを使用していない場合は、

この作業をする必要があります。

他のヒント

あなたは「それは動作しません」とは何を意味しています。 txtViewがあなたのUITe4xtViewある場合は、[txtView resignFirstResponder]文句を言わない動作したアクションでボタンを関連付けることを意味するのですか?私は前にこのコードを使用しましたし、それは私のために動作します。

コントロールのサイズ、また意図を知らない、それは固体の勧告を行うために少し難しいです。あなたは読み取り専用のテキストビューを探している場合は、なぜUILabelを考慮していませんか?それは読み取り専用のテキストが大量に含まれているために起こっているとあなたが豊かな書式設定が必要な場合は、お使いの書式でのUIWebViewを検討します。

もちろん、この答えは完全に不適切である可能性があります。アプリ・イン・プログレス(未開発、もちろん)のスクリーンショットを示し、多分、あなたの意図を明確にすることはできますか?

ビューInterface Builderでウィンドウをテキスト属性の「編集可能」オプションをオフにしてみてください。

これは、ユーザーがあなたのTextViewの

をクリックすると現れてからキーボードを停止します

私は、問題のその種のfolowingメソッドを使用しました。

- (BOOL)textFieldShouldReturn: tf_some_text_field {

[tf_some_text_field resignFirstResponder];
[tf_another_text_field_in_the_same_view resignFirstResponder];

return YES;
}

それが役に立てば幸い...

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top