2

テキスト入力にカスタムキーボードを使用するアプリに取り組んでいます。キーボードには「進む」キーと「戻る」キーが必要です。

SOを探していると、UITextFieldでカーソル位置をプログラムで設定することは不可能であることがわかります。

代わりにUITextViewを使用することを検討しました。これにより、カーソル位置を設定できます。しかし、スクロール動作は非常に煩わしくなります。

誰かが良い回避策を知っているかどうか疑問に思います。基本的には、テキストとカーソルのあるものが必要で、プログラムでカーソル位置を設定できます。

編集:興味深いことに、シミュレーターにUITextFieldがあり、Macキーボードの進むまたは戻る矢印キーを押すと、カーソルが前後に移動します。ただし、デバイスでこの動作を模倣する方法がわかりません。。。または、さらに言えば、シミュレータ画面をマウスでクリックします。

4

2 に答える 2

4

受け入れられた答えは当時は正しかったが、現在は時代遅れである。iOS 5では、UITextFieldはUITextInputプロトコルに準拠しています。したがって、カーソル位置は、selectedTextRangeプロパティを介して設定できます。

于 2012-05-09T03:02:49.187 に答える
0

また、カーソル位置を設定できるようにするためにUITextViewを使用します。

UITextView(それ自体はUIScrollViewの特殊化です)をサブクラス化する場合、「scrollingEnabled」をオーバーライドしてNOを返すことができます。

- (BOOL) scrollingEnabled   
{
    return NO;
}

また、contentInsetプロパティとcontentOffsetプロパティを試して、必要なものを正確に取得する必要がありました。

于 2011-01-04T19:27:53.410 に答える