Я использую экземпляр UITextField, в котором текст обычно выравнивается по правому краю, но при редактировании переключается на выравнивание по левому краю. Это делается путем вызова setTextAlignment:
для события editingDidBegin
. После обновления до iOS 6 это ведет себя странно: выравнивание текста правильно изменено справа налево, но курсор остается в крайнем правом текстовом поле, пока не будет выполнен какой-либо ввод.
Кто-нибудь знает, как восстановить ожидаемое поведение, чтобы курсор также перемещался при изменении выравнивания?
Чтобы дать некоторый контекст: я использую текстовое поле, чтобы показать значение с единицей измерения. Единица удаляется во время редактирования, а затем снова отображается после того, как пользователь нажмет Enter.
Метод, вызываемый при редактировании событияDidBegin:
- (IBAction)textEditingDidBegin:(UITextField *)sender
{
[sender setTextAlignment:NSTextAlignmentLeft];
[sender setText:[NSString stringWithFormat:@"%.0f", width]];
}
Метод, вызываемый при редактировании событияDidEnd:
- (IBAction)textEditingDidEnd:(id)sender
{
[sender setTextAlignment:UITextAlignmentRight];
[sender setText:[NSString stringWithFormat:@"%.0f m", width]];
}