UITextField在编辑模式下的自定义字体更改
问题描述:
我有一个从xib加载的UITextField
。在它的视图控制器viewDidLoad
方法中,我将字体设置为在.plist file
和所有内容中设置正确的自定义值。除了处于编辑模式时,它显示得很好,此时字体会从我的自定义字体切换到默认字体,我相信它是Helvetica
。这很刺耳,我想保留整个自定义字体。我环顾四周,看不到任何即时解决方案,我尝试的唯一方法是重置textFieldShouldBeginEditing
和textFieldDidBeginEditing
委托方法中的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;
}
这什么都不做,字体仍然改变编辑时发生的,但后来又变回了自定义字体一次键盘被解雇。
第二个编辑:
好吧,我只是做了一件我大概应该有尝试过,并用几个不同的字体文件。这两种字体都能正常工作,但无论出于何种原因,我使用的自定义字体文件都会导致问题,尽管它在所有其他情况下都能正常工作。
答
试试这个:
- (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];
}
答
从我经验,问题在于字体文件。我发现唯一的解决方案是找到一种替代字体和开关。
你能发表一些代码吗?我也是在一个装载了笔尖的UITextField上设置一个自定义字体,并且我看到了这个字体,而不管状态如何。 –
代码是非常基本的。要设置一个字体,把它放在你的视图控制器中viewDidLoad:textField.font = [UIFont fontWithName:@“YourCustomFont”size:yourSize];为了使这种字体起作用,您还需要在您的info.plist文件中加载ttf或otf文件。插入'按应用程序提供的字体'键,然后输入每个字体文件名作为阵列的成员。当然,您也必须将字体文件加载到您的项目中。 – Devin
对不起,我看到我以前的评论不清楚。我知道如何包括自定义字体,我目前正在研究一个项目,其中有一个自定义字体的UITextField,在进入编辑模式时不会改变此自定义字体。所以我只是想建议你发布相关代码,以便我们找到问题所在。 –