1

UITextField があり、userInteractionEnabled プロパティが NO に設定されていても、とにかくカーソルを点滅させる必要があります。UITextField が FirstResponder になってキーボードが表示されるのは望ましくありません。

今、あなたは尋ねているかもしれません:

1. キーボードを非表示にしたいのに、なぜカーソルを表示するのですか?

A: 問題は、別の/カスタム キーボードを使用して、UITextField が編集されていることをユーザーに示す必要があることです。

2. では、inputView プロパティを使用しないのはなぜですか?

A: inputView のキーボードが下から上に来るので、カスタム キーボードを画面の中央に配置したいからです。

それでは、本当の質問に行きましょう。

カーソルを表示するにはどうすればよいですか? 設定できるプロパティはありますか? そうでない場合、どのようにカーソルを描画しますか? アルファで追加および削除される UIView を作成するか、UITextField をサブクラス化して drawInRect をオーバーライドしますか?

4

1 に答える 1

3

アルファを0と1に設定する繰り返しアニメーションを使用して、小さなUIViewを追加できますanimateWithDuration:delay:options:animations:completion:

[UIView animateWithDuration:1 
                      delay:0 
                    options:UIViewAnimationOptionRepeat 
                 animations:^{ [cursorView setAlpha:0]; }
                 completion:^(BOOL animated){ [cursorView setAlpha:1]; } ];

ビューをテキストフィールドのサブビューとして正しく配置するには、入力されたテキストの前に、このNSStringメソッドを使用できます。sizewithfont:forWidth:lineBreakMode:

于 2012-08-26T09:43:24.947 に答える