2016-07-01 9 views
3

swiftを使用してテキストフィールドセルのテキストの左側にパディングを追加するにはどうすればよいですか?これまでの回答は、UITextFieldまたはObjective Cのみです。明確にするために、これはNSTextFieldのためのものです。NSTextField左のパディング

import Cocoa 

class PaddedTextField: NSTextFieldCell { 

    @IBInspectable var leftPadding: CGFloat = 10.0 

    override func drawingRectForBounds(rect: NSRect) -> NSRect { 
     let rectInset = NSMakeRect(rect.origin.x + leftPadding, rect.origin.y, rect.size.width - leftPadding, rect.size.height) 
     return super.drawingRectForBounds(rectInset) 
    } 
} 

私は@IBInspectableプロパティとしてパディングを追加しました:

+0

NSTextFieldは、UITextFieldと同じメンバ関数を持っていないようです。 – user3225395

+0

@ NSNoob OS X用ですから? – Desdenova

+0

@Desdenova正確に。私はmacOSのためのアプリを開発しています。確かに、iOS開発との間にはさらに類似点がありました。 – user3225395

答えて

5

Hereは、次のようになりますスウィフトに客観C.

に移植されたカスタムNSTextFieldCellを作った人の例です。こうすることで、Interface Builderで好きなように設定することができます。

新しいPaddedTextFieldあなただけの通常のText Field

Normal Text Field Cell

あなたのXIBファイルへ

をドラッグして、PaddedTextField(または何があなたのクラスを呼び出す終わる)であることを内部TextFieldCellのクラスを変更を使用するには

Change class to be PaddedTextField

出来上がり

The final result

希望します。

+0

ありがとうございました!あなたは男です。魅力のように動作します。 – user3225395

+0

これは、背景色が設定されていないか、境界線がカスタマイズされていない場合にのみ機能します。これを見てください:http://stackoverflow.com/questions/37870474/osx-nstextfield-with-layer-background-color-not-working – Neovibrant

関連する問題