2011-08-18 68 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

相關問題