テキストが通常は右揃えですが、編集時に左揃えに切り替わる UITextField のインスタンスを使用します。setTextAlignment:
これは、editingDidBegin
イベントを呼び出すことによって行われます。iOS 6 へのアップデート以降、これは奇妙な動作をします。テキストの配置は右から左に正しく変更されますが、何らかの入力が実行されるまで、カーソルはテキスト フィールドの右端に留まります。
配置が変更されたときにカーソルも移動するように、予想される動作を復元する方法を知っている人はいますか?
コンテキストを示すために: テキスト フィールドを使用して、単位付きの値を表示します。単位は編集中に削除され、ユーザーが Enter キーを押すと再び表示されます。
イベント editDidBegin で呼び出されるメソッド:
- (IBAction)textEditingDidBegin:(UITextField *)sender
{
[sender setTextAlignment:NSTextAlignmentLeft];
[sender setText:[NSString stringWithFormat:@"%.0f", width]];
}
イベント editDidEnd で呼び出されるメソッド:
- (IBAction)textEditingDidEnd:(id)sender
{
[sender setTextAlignment:UITextAlignmentRight];
[sender setText:[NSString stringWithFormat:@"%.0f m", width]];
}