UITextFieldのすべてのテキストをプログラムで選択するにはどうすればよいですか?
12 に答える
上記の Mirko のコメントを検証するためにこれをテストしましたが、テストではselectAll:
、UITextField 自体に送信されたときに実際にすべてのテキストが選択されることが検証されます。
CUT | でテキストがすぐに隠れてしまうことに注意してください。コピー | PASTEアクションですが、あなたの質問には、ユーザーが最初に「すべて選択」をタップしたときに表示されるものとまったく同じです。
私が行っている解決策は次のとおりです.2行目は、明示的なユーザー選択に対して無効にすることなく、CUT/COPY/PASTEダイアログを一時的に非表示にすることに注意してください
[_myTextField selectAll:self];
[UIMenuController sharedMenuController].menuVisible = NO;
これは私が見つけた最良の解決策です。sharedMenuController はなく、連続して動作します。
-(void)textFieldDidBeginEditing:(UITextField *)textField
{
[textField performSelector:@selector(selectAll:) withObject:nil afterDelay:0.1];
}
迅速
内のすべてのテキストを選択UITextField
:
textField.selectedTextRange = textField.textRange(from: textField.beginningOfDocument, to: textField.endOfDocument)
私の完全な答えはここにあります: https://stackoverflow.com/a/34922332/3681880
テキストを選択できるようにするには、テキスト フィールドを編集可能にする必要があります。テキスト フィールドがいつ編集可能になるかを知るには、デリゲート メソッドを使用します。
- (void)textFieldDidBeginEditing:(UITextField *)textField
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField
textFieldShouldBeginEditing: は必須ではないと思いますが、実装で使用したものです。
- (void)textFieldDidBeginEditing:(UITextField *)textField{
[textField selectAll:textField];
}
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField{
return YES;
}
selectAll: に nil を渡すと、メニューは表示されません。
ユーザーが uitextfield のテキストを編集できるようにする方法を意味する場合は、firstResponder をそれに割り当てます。
[textField becomeFirstResponder]
uitextfield でテキストを取得する方法を意味する場合は、次のようにします。
textField.text
実際にテキストを選択することを意味する場合 (強調表示のように)、これは役立つ場合があります。