在编辑模式下,UITextField的自定义字体会发生变化

时间:2011-08-18 07:00:58

标签: iphone objective-c ios

我有一个从xib加载的UITextField。在它的视图控制器viewDidLoad方法中,我将字体设置为自定义值,该值在.plist file和所有内容中设置正确。除了在编辑模式下,它显示正常,此时字体从我的自定义字体切换到默认字体,我认为是Helvetica。这很刺耳,我想保留自定义字体。我环顾四周,我没有看到任何直接的解决方案,我唯一尝试的是重置textFieldShouldBeginEditingtextFieldDidBeginEditing委托方法中的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;
    }

这没有任何作用,字体在编辑时仍然会发生变化,但是一旦键盘被解除,它就会变回自定义字体。

第二次编辑:

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

3 个答案:

答案 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)

根据我的经验,问题在于字体文件。我发现唯一的解决方案是找到替代字体并切换。