Проблемы UITextField в iOS 5 путем изменения UITextFieldBorderStyle во время выполнения - PullRequest
3 голосов
/ 13 октября 2011

У меня внезапно возникли проблемы с некоторыми UITextFields теперь, когда я тестирую на устройствах iOS 5, хотя я построил приложение в iOS 5 SDK и уже выпустил ошибку, чтобы выпустить.

Iимеет текстовое поле, которое позволяет вводить данные, и когда вы нажимаете кнопку «блокировки», оно вызывает:

textField.enabled = NO;
textField.borderStyle = UITextBorderStyleNone;

Поле «скрывается», но все еще действует как метка - важная функция для приложения.

Затем вы снова нажимаете кнопку «блокировки», и она вызывает:

textField.enabled = YES;
textField.borderStyle = UITextBorderStyleRoundedRect;

Это прекрасно работает в 4.2 / 4.3, но в iOS 5 единственное, что появляется, это скошенный контур текстового поля безбелый фоновый цвет.

Установка .backgroundColor исправляет его на iOS 5, но создает неприятный белый квадрат на 4.2 / 4.3.

Я ничего не видел об этих изменениях в документе API diffs,что мне здесь не хватает ??Заранее спасибо ..

Ответы [ 4 ]

2 голосов
/ 18 октября 2011

Если у вас все в порядке с белым фоном, я исправил это, закомментировав строку, которая задает цвет фона и установив непрозрачное свойство на NO

//[myTextField setBackgroundColor:[UIColor whiteColor]];

[myTextField setOpaque:NO];

Это решило проблему как для iOS 4.3,и iOS 5.0

-Alex

0 голосов
/ 14 октября 2011

Возможное исправление - установить alpha на 0.00001.Это дает вам эффективно скрытые метки, которые могут реагировать на события управления.

0 голосов
/ 18 октября 2011

У меня похожая проблема, и UITextBorderStyleNone работал нормально в iOS 4.3, но на iOS 5 перестал работать. Я думаю, что это ошибка Apple, потому что она не работает как на устройстве, так и на симуляторе. Я думаю, что ваш лучший способ здесь - переключаться между меткой и текстовым полем по мере необходимости, как предлагает darvids0n, пока Apple не исправит ошибку.

0 голосов
/ 14 октября 2011

userInteractionEnabled является свойством гораздо более общего класса UIView, и поэтому может работать не так, как вы ожидали, с подклассами UIControl, такими как UITextField.Вместо этого вы должны установить для свойства enabled значение NO, чтобы временно отключить элемент управления, который в случае UITextField будет делать именно то, что вы хотите.

...