これはおそらく簡単なことですが、私には理解できません - テキストビューの編集を終了するにはどうすればよいですか? キーボードを非表示にする方法を教えてください。または、それを消すには、その外側をクリックする必要がありますか?
4 に答える
まず、(正直に言うと) このような非常に単純な質問に対して、ドキュメントを読んだり、インターネットで検索したりしたことがあるかどうか疑問に思います。
「Apple documentation UITextView」を検索すると、クラスのドキュメントへのリンクが表示されます。同様に、 UITextViewDelegateのドキュメントは次のとおりです。
「UITextView の簡単な例」を検索すると、この便利な例が得られます。
「UITextView キーボードを閉じる」を検索すると、最初のヒットはあなたの質問に正確に答えているようです。(彼はリターンキーでキーボードを閉じますが、これはあなたが望むものではないかもしれません。)(編集-2番目のコメントから、それはまさにあなたが望んでいるようです。)
PS上記の人々は、少し簡潔ですが(当然のことながら)正しいです。UITextViewDelegate を実装する必要があります。そのデリゲートで、return キーのキーボードを非表示にする場合は、shouldChangeTextInRange を実装し、@"\n" を探して、取得した場合はファーストレスポンダーを辞任します。または、UI に「編集完了」ボタンを追加し、ユーザーがそれを押した場合はファーストレスポンダを辞任します。
One way to end editing, tapping outside the textView, is not entirely trivial. Selecting other text views or text fields or activating a navigation control will trigger...
- (void)textViewDidEndEditing:(UITextView *)textView
...on whatever object you've designated as the textView's delegate. You can trigger this yourself by calling...
- (BOOL)endEditing:(BOOL)force
...on the view that contains your text field.
Suppose I have a UITextView inside a UITableViewCell (inside a UITable). I want to enable editing to end by tapping the table. I could do this:
- (void)viewDidLoad
{
[super viewDidLoad];
UITapGestureRecognizer *tapRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(didTapTable)];
[[self tableView] addGestureRecognizer:tapRecognizer];
[tapRecognizer release];
}
- (void)didTapTable
{
[[self tableView] endEditing:YES];
}
Now whenever I tap my table, I end editing. And, as others have said, in textViewDidEndEditing
I should be sure to call [textView resignFirstResponder];
非常に簡単:
[myTextField resignFirstResponder];
トリックを行います。
[yourTextField resignFirstResponder];
キーボードが消えて編集が終了します。