2011-01-04 21 views
2

私は、テキスト入力にカスタムキーボードを使用するアプリケーションで作業しています。キーボードには「前方」キーと「戻る」キーが必要です。iOS - UITextFieldのカーソル位置を設定できないことに対処する

SOの中には、UITextFieldのカーソル位置をプログラムで設定することができないものがあります。

代わりにUITextViewを使用してみました。これにより、カーソルの位置を設定することができます。しかし、スクロールの動作は非常に面倒です。

誰かが適切な回避策を認識しているのだろうかと思います。基本的には、テキストとカーソルを持つものが欲しく、プログラムでカーソルの位置を設定できます。

EDIT:興味深いことに、私がUITextFieldをシミュレータに持っていて、Macキーボードの前向き矢印キーまたは後ろ向き矢印キーを押すと、カーソルが前進または後退します。しかし、デバイス上でこの振る舞いを模倣する方法はありません。 。 。マウスをクリックしてシミュレータ画面を表示させてください。

答えて

0

また、私はカーソル位置を設定できるという目的のためにUITextViewを使用します。あなたは(それ自体がUIScrollViewのの専門のである)UITextViewのサブクラスを作成した場合

、あなたは「scrollingEnabled」を上書きして返すことができNO:

- (BOOL) scrollingEnabled 
{ 
    return NO; 
} 

また、私は正確に何を得るためにcontentInsetとcontentOffsetプロパティと遊ぶのがなかったです私は欲しかった。

+0

初期化時にself.scrollEnabled = NOを設定し、常にNOを返すようにisScrollEnabledをオーバーライドしても、選択したときに上方向にスクロールすることがあります。 ( "may"は、ビューのサイズに対するフォントサイズに依存します) –

+0

はい、ビューのサイズを調整する必要があります。 – TomSwift

+0

申し訳ありません。あなたは正しい。私は私のプロジェクトにいくつかのコードがありました。私はscrollEnabledをNOに設定します。そして、スクロールを完全に避けるために、フィールドに表示サイズとトラック入力を調整する必要があります。 – TomSwift

4

受け入れられた回答は当時は正しいものの、現在は古くなっています。 iOS 5では、UITextFieldはUITextInputプロトコルに準拠しています。したがって、カーソル位置はselectedTextRangeプロパティで設定できます。

関連する問題