2016-07-18 10 views
0

私のNSTextFieldは角が丸く、背景色が白ですが、ビュー自体が矩形であるように見えます。これは、丸い角と外接する四角形の間のスペースが透明として表示されていることを意味します。私はこのエリアをどのように埋めることができるので、目立たないでしょうか?丸みを帯びたNSTextFieldは透明なコーナーを描きますか?

画像:

The NSTextField with terrible corners.

コード:

let textFieldLayer = CALayer() 
textField.layer = textFieldLayer 
textField.backgroundColor = NSColor.whiteColor() 
textField.layer?.backgroundColor = NSColor.whiteColor().CGColor 
textField.layer?.borderColor = NSColor(calibratedRed: 47/255.0, green: 146/255.0, blue: 204/255.0, alpha: 1.0).CGColor 
textField.layer?.borderWidth = 1 
textField.layer?.cornerRadius = 7 
+0

:私は、境界選択が最初のオプション以外のものだった場合、この方法が正しく動作しなかったことを発見しましたか? –

+0

あなたが試したコードを表示してください。 –

+0

上記のコードを追加しました。助けてくれてありがとう。 – user3225395

答えて

0

私はNSTextFieldをサブクラス化し、そののdrawRectメソッドオーバーライドすることでそれをやった:私は、これは古いです知っている

override func drawRect(dirtyRect: NSRect) { 
    super.drawRect(dirtyRect) 
    var bounds: NSRect = self.bounds 
    var border: NSBezierPath = NSBezierPath(roundedRect: NSInsetRect(bounds, 0.5, 0.5), xRadius: 3, yRadius: 3) 
    NSColor(red: 47/255.0, green: 146/255.0, blue: 204/255.0, alpha: 1.0).set() 
    border.stroke() 
} 
+1

これは、元の問題を解決するための適切な方法ですが、フォーカスリングを使用すると同様の問題が発生します。あなたがそれを上書きするなら、それは簡単な修正です。 –

0

を、しかし、他の人が見ている場合に備えて。私はthis postがMedium上にあることがNSTextFieldをカスタマイズする際に大きな助けになることがわかりました。これは、テキストフィールドのCALayerを利用します。ここでは、関連するビットのリンクから抜粋です:

override fun viewDidLoad() { 
super.viewDidLoad() 
inputTextField.wantsLayer = true 
let textFieldLayer = CALayer() 
inputTextField.layer = textFieldLayer 
inputTextField.backgroundColor = fieldBackgroundColor 
inputTextField.layer?.backgroundColor = fieldBackgroundColor.cgColor 
inputTextField.layer?.borderColor = fieldBorderColor.cgColor 
inputTextField.layer?.borderWidth = 1 
inputTextField.layer?.cornerRadius = 5 
inputTextField.textColor = fieldTextColor 
} 

はまた、あなたはIBでNSTextFieldのデフォルト設定で周りfutzedした場合、あなたは結果を望んでいないことがありことに注意してください。あなたは正確にコーナーを丸めている方法

Only the first will do.

+0

OPの問題は、「inputTextField.wantsLayer = true」の欲しいものから来ている可能性があります。 – Schule

関連する問題