0

増分が0.1に設定されたコントロール(実際には多く)またはすべてのインスタンスNSStepperを呼び出さない整数値以外のものを使用するための回避策はありますか?setIncrement:NSStepper

NSTextField小さな増分でインスタンス化されたアタッチの値を変更するためにステッパーを必要とするエディターのようなUIがあります。

Interface Builder(IB)で増分を10進値に設定すると、APIはdoubleを受け入れますが、整数に丸められます。

増分フィールドに何も入力せず、すべてのインスタンスNSStepperを呼び出すサブクラスを使用しsetIncrement:ても、たとえば0.1に設定するとinit失敗します。これは、IBinitが呼び出された後に増分を0または何かに設定しているためです。

ただし、setIncrement:サブクラスのオーバーライドは呼び出されないため、どのように実行されるかはわかりません...

4

1 に答える 1

1

NSStepper標準のものとインクリメントだけが異なる s がたくさんある場合は、オブジェクトが nib ファイルから再作成されたときに呼び出される初期化子をサブクラス化NSStepperしてオーバーライドすることができます。initWithCoder:

initWithCoder:指定されたイニシャライザと一緒に検討する傾向がありますinitWithFrame:が、ドキュメントはその側面について少し曖昧です。とにかく、独自のプロパティを設定する前に呼び出すとsuper、機能し、堅牢になるはずです。この種のトリックを行う場合、オーバーライドinitWithFrame:して同じ初期化を行うことも検討できるため、サブクラスをインスタンス化するさまざまな方法で一貫した動作が得られます。

このアプローチの欠点はincrement、カスタム サブクラスに Interface Builder で を設定できないことです。

于 2013-02-04T09:23:48.133 に答える