2016-04-18 11 views
0

私はいくつかのUITextfieldを使用しているアプリケーションを作成しています。私は単一のテキストフィールドのplaceholderの色を変更する方法を知っています。アプリ全体のUITextFieldのプレースホルダーカラーをグローバルに設定するにはどうすればいいですか?

textField.attributedPlaceholder = NSAttributedString(string: "Username", attributes: [NSForegroundColorAttributeName: UIColor.redColor()])

しかし、アプリ全体でUITextFieldのプレースホルダーの色を変更したいと思います。私のアプリには、UIViewControllers以上のものがあり、それらのうち25以上にtextFields(画面あたり2〜22)があります。私はすべてのビューコントローラに移動して手動で変更する必要がないように、1か所でグローバルに使用できるコードが必要です。

他の選択肢がある場合は、私に知らせてください。

私はxcode 7.1.1swift 2.0

アップデートを使用しています: は、デフォルトのプレースホルダの色はライトグレー色に設定されています。デフォルトの動作を微調整して他の色に変更する方法はありますか?

このデフォルトコードにアクセスして変更するにはどうすればよいですか?

+0

が、それはあなたhttps://www.natashatherobot.com/助けこれを見る

extension String { func toAttributedString(font font:UIFont!, kerning: CGFloat!, color:UIColor!) -> NSAttributedString { return NSAttributedString(string: self as String, font: font, kerning: kerning, color: color)! } } extension NSAttributedString { convenience init?(string text:String, font:UIFont!, kerning: CGFloat!, color:UIColor!) { self.init(string: text, attributes: [NSKernAttributeName:kerning, NSFontAttributeName:font, NSForegroundColorAttributeName:color]) } } 

拡張メソッドを作成します。 @ Swbu-extensions/ –

+0

@ Anbu.Karthik私はリンクを見ましたが、私のコードでどのように役立つか分かりません。あなたはより具体的にすることができます –

+0

ya確かに....... –

答えて

1

使用例

/ Example Usage 
var testString: String = "Hi Kautham" 

var testAttributedString: NSAttributedString = testString.toAttributedString(font: UIFont.boldSystemFontOfSize(20), kerning: 2.0, color: UIColor.whiteColor()) 


let label = UILabel(frame: CGRect(x: 50, y: 50, width: 200, height: 20)) 

label.attributedText = testAttributedString 
self.view.addSubview(label) 
+0

あなたの答えをありがとう、これは本当に役に立ちます。 –

+0

@KauthamMurugan - 仲間を聞いて幸せ、それはbz私はこれをテストしていない作品 –

0

あなたのNSAttributedStringでマクロを宣言してください。

必要に応じて、すべてのテキストフィールドに属性付きの文字列を指定します。

あなたがマクロに変更した場合、すべての場所に反映されるように...

次のことをチェックしてください。

let CommonTextFieldAttr : NSDictionary = [NSForegroundColorAttributeName:UIColor.redColor()] 

テキストフィールドプロパティで使用します。

textField?.attributedPlaceholder = NSAttributedString(string: "sdfa",attributes: CommonTextFieldAttr as? [String : AnyObject]) 

はそれがお役に立てば幸いです。..

+0

質問は迅速に、あなたの答えをカスタマイズすることができます –

+0

@バラジお寄せいただきありがとうございます。しかし、私はすでにこの方法を知っています。問題は、新しい属性を設定するには、私がやりたくないテキストフィールドごとに、すべてのビューコントローラでコードの2行目を使用する必要があります。 1つのビューコントローラに複数のテキストフィールドを最大22個まで設定できます。 –

関連する問題