2011-08-18 63 views
3

我有一个从xib加载的UITextField。在它的视图控制器viewDidLoad方法中,我将字体设置为在.plist file和所有内容中设置正确的自定义值。除了处于编辑模式时,它显示得很好,此时字体会从我的自定义字体切换到默认字体,我相信它是Helvetica。这很刺耳,我想保留整个自定义字体。我环顾四周,看不到任何即时解决方案,我尝试的唯一方法是重置textFieldShouldBeginEditingtextFieldDidBeginEditing委托方法中的textField.font属性,这两者都没有做任何事情。UITextField在编辑模式下的自定义字体更改

编辑:我已经被要求提供代码,它确实只是一行,但在这里。

- (void)viewDidLoad 
    { 
     [super viewDidLoad]; 
     // Do any additional setup after loading the view from its nib. 

     self.myTextField.font = [UIFont fontWithName:@"MyFont" size:18]; 
    } 

我也试过在以下两种方法重置字体:

-(void)textFieldDidBeginEditing:(UITextField *)textField 
    { 
     textField.font = [UIFont fontWithName:@"MyFont" size:18]; 
    } 

    -(BOOL)textFieldShouldBeginEditing:(UITextField *)textField 
    { 
     textField.font = [UIFont fontWithName:@"MyFont" size:18]; 
     return YES; 
    } 

这什么都不做,字体仍然改变编辑时发生的,但后来又变回了自定义字体一次键盘被解雇。

第二个编辑:

好吧,我只是做了一件我大概应该有尝试过,并用几个不同的字体文件。这两种字体都能正常工作,但无论出于何种原因,我使用的自定义字体文件都会导致问题,尽管它在所有其他情况下都能正常工作。

+0

你能发表一些代码吗?我也是在一个装载了笔尖的UITextField上设置一个自定义字体,并且我看到了这个字体,而不管状态如何。 –

+0

代码是非常基本的。要设置一个字体,把它放在你的视图控制器中viewDidLoad:textField.font = [UIFont fontWithName:@“YourCustomFont”size:yourSize];为了使这种字体起作用,您还需要在您的info.plist文件中加载ttf或otf文件。插入'按应用程序提供的字体'键,然后输入每个字体文件名作为阵列的成员。当然,您也必须将字体文件加载到您的项目中。 – Devin

+0

对不起,我看到我以前的评论不清楚。我知道如何包括自定义字体,我目前正在研究一个项目,其中有一个自定义字体的UITextField,在进入编辑模式时不会改变此自定义字体。所以我只是想建议你发布相关代码,以便我们找到问题所在。 –

回答

0

试试这个:

- (void)textFieldDidChange:(UITextField *)textField { 
    textField.font = [UIFont fontWithName:@"MyFont" size:18]; 
} 

或者作为替代fhat创建一个IBAction为,将其连接到与编辑文本字段改变这种代码添加到您的m:

- (IBAction)textFieldEditingChanged:(id)sender { 
    textField.font = [UIFont fontWithName:@"MyFont" size:18]; 
} 
+0

这不会做任何事 – Devin

+0

好吧然后尝试在IB设置字体,而不是使用代码,在IB做东西总是工作 – JonasG

0

从我经验,问题在于字体文件。我发现唯一的解决方案是找到一种替代字体和开关。

1

我有一个otf字体的问题(实际上我一直有otf字体的问题......)所以现在我只使用ttf字体,这很好。如果您需要从otf转换字体,请查看font converter website

相关问题