6

これはおそらく簡単なことですが、私には理解できません - テキストビューの編集を終了するにはどうすればよいですか? キーボードを非表示にする方法を教えてください。または、それを消すには、その外側をクリックする必要がありますか?

4

4 に答える 4

10

まず、(正直に言うと) このような非常に単純な質問に対して、ドキュメントを読んだり、インターネットで検索したりしたことがあるかどうか疑問に思います。

「Apple documentation UITextView」を検索すると、クラスのドキュメントへのリンクが表示されます。同様に、 UITextViewDelegateのドキュメントは次のとおりです。

「UITextView の簡単な例」を検索すると、この便利な例が得られます。

「UITextView キーボードを閉じる」を検索すると、最初のヒットはあなたの質問に正確に答えているようです。(彼はリターンキーでキーボードを閉じますが、これはあなたが望むものではないかもしれません。)(編集-2番目のコメントから、それはまさにあなたが望んでいるようです。)

PS上記の人々は、少し簡潔ですが(当然のことながら)正しいです。UITextViewDelegate を実装する必要があります。そのデリゲートで、return キーのキーボードを非表示にする場合は、shouldChangeTextInRange を実装し、@"\n" を探して、取得した場合はファーストレスポンダーを辞任します。または、UI に「編集完了」ボタンを追加し、ユーザーがそれを押した場合はファーストレスポンダを辞任します。

于 2009-05-21T06:54:35.183 に答える
2

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];

于 2012-04-08T06:58:04.853 に答える
2

非常に簡単:

[myTextField resignFirstResponder]; 

トリックを行います。

于 2009-05-20T20:01:24.840 に答える
0
[yourTextField resignFirstResponder];

キーボードが消えて編集が終了します。

于 2009-05-20T20:01:34.697 に答える