Высота по умолчанию для UITextField
со стилем границы UITextBorderStyleRoundedRect
составляет 31 пиксель. Для приложения для iPad я хотел бы создать UITextField с высотой 60 пикселей и расположить текст вертикально по центру, чтобы он выглядел хорошо (по умолчанию текст отображается только на несколько пикселей ниже верхней границы UITextField).
Если я сделаю следующее ...
UITextField *txtLogin = [[UITextField alloc] initWithFrame:CGRectMake(200,200,300,60)];
txtLogin.borderStyle = UITextBorderStyleRoundedRect;
... результат будет выглядеть так: http://grab.by/6jRc
Как видите, вводимый текст не центрирован по вертикали. Я попытался найти решение и обнаружил, что мне просто нужно унаследовать свой собственный класс от UITextField и переопределить метод - (CGRect) textRectForBounds: (CGRect) bounds
. Мне бы хотелось создать UITextField с высотой 60 пикселей и расположить текст по центру вертикально, чтобы он выглядел хорошо (по умолчанию текст отображается только на несколько пикселей ниже верхней границы UITextField).
Если я сделаю следующее ...
UITextField *txtLogin = [[UITextField alloc] initWithFrame:CGRectMake(200,200,300,60)];
txtLogin.borderStyle = UITextBorderStyleRoundedRect;
... результат выглядит так: http://grab.by/6jRc
Как видите, вводимый текст не центрирован по вертикали. Я попытался найти решение и обнаружил, что мне просто нужно унаследовать свой собственный класс от UITextField и переопределить метод - (CGRect) textRectForBounds: (CGRect) bounds
. Мне бы хотелось создать UITextField с высотой 60 пикселей и расположить текст по центру вертикально, чтобы он выглядел хорошо (по умолчанию текст отображается только на несколько пикселей ниже верхней границы UITextField).
Если я сделаю следующее ...
UITextField *txtLogin = [[UITextField alloc] initWithFrame:CGRectMake(200,200,300,60)];
txtLogin.borderStyle = UITextBorderStyleRoundedRect;
... результат выглядит так: http://grab.by/6jRc
Как видите, вводимый текст не центрирован по вертикали. Я попытался найти решение и обнаружил, что мне просто нужно унаследовать свой собственный класс от UITextField и переопределить метод - (CGRect) textRectForBounds: (CGRect) bounds
. by / 6jRc
Как видите, вводимый текст не центрирован по вертикали. Я попытался найти решение и обнаружил, что мне просто нужно унаследовать свой собственный класс от UITextField и переопределить метод - (CGRect) textRectForBounds: (CGRect) bounds
. by / 6jRc
Как видите, вводимый текст не центрирован по вертикали. Я попытался найти решение и обнаружил, что мне просто нужно унаследовать свой собственный класс от UITextField и переопределить метод - (CGRect) textRectForBounds: (CGRect) bounds
.
Однако этот метод никогда не вызывается, и согласно по этой ссылке в API Apple есть ошибка. Поэтому я ищу альтернативы, которые работают.
Что было бы хорошим решением для решения этой проблемы и достижения правильного вертикального выравнивания вводимого текста?