我有一个从xib加载的UITextField
。在它的视图控制器viewDidLoad
方法中,我将字体设置为自定义值,该值在.plist file
和所有内容中设置正确。除了在编辑模式下,它显示正常,此时字体从我的自定义字体切换到默认字体,我认为是Helvetica
。这很刺耳,我想保留自定义字体。我环顾四周,我没有看到任何直接的解决方案,我唯一尝试的是重置textFieldShouldBeginEditing
和textFieldDidBeginEditing
委托方法中的textField.font属性,这两种方法都没有做任何事情
编辑:我已经被要求提供代码,它实际上只有一行,但这里有。
- (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 :(得分:1)
我有一个otf字体的问题(实际上我总是遇到otf字体的问题......)所以现在我只使用ttf字体,这很好用。如果您需要从otf转换字体,请查看此font converter website。
答案 1 :(得分:0)
试试这个:
- (void)textFieldDidChange:(UITextField *)textField {
textField.font = [UIFont fontWithName:@"MyFont" size:18];
}
或者作为fhat创建IBAction的替代方法,将其连接到带有编辑更改的textField并将此代码添加到.m:
- (IBAction)textFieldEditingChanged:(id)sender {
textField.font = [UIFont fontWithName:@"MyFont" size:18];
}
答案 2 :(得分:0)
根据我的经验,问题在于字体文件。我发现唯一的解决方案是找到替代字体并切换。