少し助けが必要です。カスタムキーボードを作成し、UITextFields.inputViewに追加しました。すべてがうまくいきます。しかし、フィールド内のカーソルを左右に移動するためのボタンを作成する際に、いくつかの問題が発生しました。実際、私はそれらを作り、それらは機能します。ただし、TextField自体はカーソル位置の変更を正しく表示しません。テキストがフィールドの範囲外になり、カーソルをフィールドの範囲外に移動した場合、フィールド自体は更新されません。つまり、カーソルは必要なとおりに移動しますが、フィールドの表示領域から外れます。問題は、UITextFieldを更新する方法です。
カーソルを左に移動するボタンのコードを投稿する:(長さ0のx位置のテキストを選択するように機能します)
//オブジェクト-は私のUITextFieldです//pos-カーソルの位置
-(IBAction)moveLeft:(UIButton*)sender{
UITextRange *selectedRange = [object selectedTextRange];
int pos = [object offsetFromPosition:object.endOfDocument toPosition:selectedRange.start];
if ([object.text length]+pos>0){
NSRange range= NSMakeRange([object.text length]+pos-1, 0);
UITextPosition *start = [object positionFromPosition:[object beginningOfDocument]
offset:range.location];
UITextPosition *end = [object positionFromPosition:start
offset:range.length];
[object setSelectedTextRange:[object textRangeFromPosition:start toPosition:end]];
**[self updateTextField];**
}
}
この「updateTextField」メソッドを作成する方法は?