76

UITextFieldのすべてのテキストをプログラムで選択するにはどうすればよいですか?

4

12 に答える 12

48

上記の Mirko のコメントを検証するためにこれをテストしましたが、テストではselectAll:、UITextField 自体に送信されたときに実際にすべてのテキストが選択されることが検証されます。

CUT | でテキストがすぐに隠れてしまうことに注意してください。コピー | PASTEアクションですが、あなたの質問には、ユーザーが最初に「すべて選択」をタップしたときに表示されるものとまったく同じです。

私が行っている解決策は次のとおりです.2行目は、明示的なユーザー選択に対して無効にすることなく、CUT/COPY/PASTEダイアログを一時的に非表示にすることに注意してください

[_myTextField selectAll:self];
[UIMenuController sharedMenuController].menuVisible = NO;
于 2010-01-31T18:43:50.433 に答える
9

これは私が見つけた最良の解決策です。sharedMenuController はなく、連続して動作します。

-(void)textFieldDidBeginEditing:(UITextField *)textField
{
    [textField performSelector:@selector(selectAll:) withObject:nil afterDelay:0.1];
}
于 2016-12-09T21:19:51.253 に答える
8

迅速

内のすべてのテキストを選択UITextField:

textField.selectedTextRange = textField.textRange(from: textField.beginningOfDocument, to: textField.endOfDocument)

私の完全な答えはここにあります: https://stackoverflow.com/a/34922332/3681880

于 2016-01-21T11:40:27.353 に答える
3

テキストを選択できるようにするには、テキスト フィールドを編集可能にする必要があります。テキスト フィールドがいつ編集可能になるかを知るには、デリゲート メソッドを使用します。

- (void)textFieldDidBeginEditing:(UITextField *)textField
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField

textFieldShouldBeginEditing: は必須ではないと思いますが、実装で使用したものです。

- (void)textFieldDidBeginEditing:(UITextField *)textField{
    [textField selectAll:textField];
}

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField{
    return YES;
}

selectAll: に nil を渡すと、メニューは表示されません。

于 2015-02-05T16:54:14.983 に答える
-1

ユーザーが uitextfield のテキストを編集できるようにする方法を意味する場合は、firstResponder をそれに割り当てます。

[textField becomeFirstResponder]

uitextfield でテキストを取得する方法を意味する場合は、次のようにします。

textField.text

実際にテキストを選択することを意味する場合 (強調表示のように)、これは役立つ場合があります。

すべて選択

于 2009-11-06T19:50:06.823 に答える