I am suffering the same problem as here UITextField's custom font changes while in edit mode and could really do with a solution.
I have 4 UITextFields that I assign custom fonts in ViewDidLoad. This works and they look great, however when clicking a field to edit the text the font changes back to default text and when resignedfirstresponder the custom font comes back.
- (void)viewDidLoad
{
[super viewDidLoad];
{
UIFont *twoDumb = [UIFont fontWithName:@"Dumb" size:20.f];
lbl1.font = twoDumb;
broughtForward.font = twoDumb;
lbl2.font = [UIFont fontWithName:@"Dumb" size:24.f];
amountTextfield.font = twoDumb;
lbl3.font = twoDumb;
If I use system fonts, then the text field works as it should, so there must be something to do with this font file maybe?
The lable (lbl1,lbl2,lbl3) which you have used are custom or is it set from xib file?
I doubt the font it is changing is due to font set in Xib file.
I have found that when I'm setting the UILabel appearance anywhere in the code:
[[UILabel appearance] setFont:MYFONT];
Changing UITextField font only applies to editing text, and not to the text shown in textfield when user is not editing it.
Hope this helps
I have downloaded that font and tried it in an iPhone app. I also downloaded some other fonts from the internet and tried them as well. I also tried some Mac fonts such as Chalkduster. I also tried 3Dumb. The results every font I tried EXCEPT 2Dumb and 3Dumb worked. Solution: Use another font.
You can set the font again when editing, the font will be the same when editing.
- (void)textFieldDidBeginEditing:(UITextField *)textField {
textField.font = customizedFont; //The font you want to use no matter editing/no editing
}
来源:https://stackoverflow.com/questions/9359479/uitextfield-changes-font-while-editing