2012-07-03 2 views
4

Я хочу удалить границу UITextField динамически.Не удается удалить границу UITextField динамически

Я попытался [stringTextField setBorderStyle:UITextBorderStyleNone];

, но ничего не произошло. Есть идеи?

+0

Проверьте этот поток HTTP: // stackoverflow.com/questions/5789816/how-to-set-border-style-of-a-uitextfield – Ekram

+0

Есть ли шанс, что вы не на главной теме, когда вы это называете? Если это сетевой обратный вызов или другой метод async, вам нужно будет 'dispatch_async()' в основную очередь. –

ответ

4

Является ли TextField уже отображаемым в представлении, когда это происходит? Если да, то вы (возможно) необходимо выполнить следующие действия:

[stringTextField setBorderStyle:UITextBorderStyleNone]; 
[stringTextField setNeedsDisplay]; 

для того, чтобы целью перерисовку TextField, SANS границу. Обратите внимание, что нет гарантии, что система немедленно перекроет textField. Вы указываете системе, что вы хотите, чтобы поле было перерисовано.

+0

Я сделал то, что вы сказали. Если я UITextBorderStyleRoundedRect, это нормально. Но если я пишу UITextBorderStyleNone, ничего не происходит – Burak

+0

Собственно для UITextBorderStyleRoundedRect нет необходимости устанавливатьNeedsDisplay. – Burak

3

Попробуйте это.

textField.borderStyle = UITextBorderStyleRoundedRect; 
textField.borderStyle = UITextBorderStyleNone; 
+0

да решил этот ответ! – user3236289

3

С существующей UITextField я обнаружил, что это сработало:

[textField setEnabled:NO]; 
[textField setBorderStyle:UITextBorderStyleNone]; 

пока это не сделал (граница осталась в представлении):

[textField setBorderStyle:UITextBorderStyleNone]; 
[textField setEnabled:NO]; 
+0

Отработал за 45 минут до того, как все это сработало. Weird. – nickdnk