2016-07-25 57 views
2

enter image description here文本字段佔位符字體創建問題

我已經添加按鈕rightView到文本框。

我設置了自定義字體作爲佔位符文本的屬性文本。

我的文本框的佔位符和文本字體是不同的。

但是,當文本框的文本很大,如果我選擇整個文本並刪除 它然後它不顯示我的佔位符文本的字體。它以文本字段的文本字體顯示。

詳細說明:

  • 我的文本字段的文本字體爲:OpenSans大膽18.0
  • 我的文本字段的佔位符文本字體爲:OpenSans 18.0(正常)

但是,當我選擇孔文本(大)和刪除文本,然後它顯示佔位符文本:OpenSans Bold 18.0

但它應該顯示佔位符文本在:OpenSans 18.0(Regular)

enter image description here

回答

3

我認爲你需要時常出現佔位時間/消失設置字體。設置文本字段委託,並添加以下代碼...

func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool { 

    let length = (textField.text?.characters.count)! + (string.characters.count - range.length) 

    // If there is text in the text field 
    if (length > 0) { 
     // Set textfield font 
     textField.font = UIFont(name: "OpenSans Bold", size: 18) 
    } else { 
     // Set textfield placeholder font (or so it appears) 
     textField.font = UIFont(name: "OpenSans Regular", size: 18) 
    } 

    return true; 
} 

的OBJ-C:

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string 
{  
    // If there is text in the text field 
    if (textField.text.length + (string.length - range.length) > 0) { 
     // Set textfield font 
     textField.font = [UIFont fontWithName:@"OpenSans Bold" size:18]; 
    } else { 
     // Set textfield placeholder font (or so it appears) 
     textField.font = [UIFont fontWithName:@"OpenSans Regular" size:18]; 
    } 

    return YES; 
} 
+1

@EricD:我只是給了我很久以前使用的代碼。不過,我明白你的觀點。答案已更新。 – Nishant

+0

謝謝。它正在工作。 –

相關問題