5

同様の問題をstackoverflowで検索し、他の人に役立つ推奨される解決策を見つけましたが、どれもうまくいきませんでした。

とても簡単です。私が望むのは、ユーザーが uitextfield をタップすると、uitextfield 内のテキスト全体が選択されることだけです。その後、ユーザーはそれをすべて削除し、一度タップしてその時点から追加するか、入力を開始してすべてを上書きすることができます。

uitextfield からのアクションがあり、これがスニペットです。

- (IBAction)didBeginEditDescription:(id)sender
{
    NSLog(@"Description began edit.");

    [self.txtfield selectall:self];
}

メソッドが呼び出されていることはわかっています (NSLog で明らかです)。ただし、何も起こらず、カーソルはテキストの最後の位置にとどまります。私はすでに UITextFieldDelegate を持っているので、他に何を見ればよいかわかりませんか?

参考までに、これは Xcode 5.0 に対して行われており、iOS 7 向けに開発しようとしています。

私が行方不明であることは明らかですか?

4

4 に答える 4

9

selected のすべてのテキストを強調表示したいと思いますUITextField。その場合、まずUITextFieldそのメソッド ( -didBeginEditDescription) を呼び出し-selectAllたものを特定してから、その特定のを呼び出すことができますUITextField

サンプルコード:

- (IBAction)didBeginEditDescription:(id)sender
{
    NSLog(@"Description began edit.");
    UITextField *txtFld = ((UITextField *)sender);
    [txtFld selectAll:self];
}

アップデート :

-selectAll動作するはずです。私はすでに実装しており、私にとっては非常にうまく機能しています。-selectallの代わりに書いていることに注意してください-selectAll。次のように試すこともできます:

[txtFld setSelectedTextRange:[txtFld textRangeFromPosition:txtFld.beginningOfDocument toPosition:txtFld.endOfDocument]]; 
于 2013-10-02T10:32:00.693 に答える
1

ではなく、電話selectAll:selfをかけることが必要であることがわかりましたTouchDown:editDidBegin:

InterfaceBuilder にアタッチTouch Down- (IBAction)didBeginEditDescription:(id)senderます。

于 2016-02-18T13:58:32.437 に答える