NSSearchFieldCell
サブクラスでカスタム図面を作成しています。ただし、その2つの描画メソッドのいずれかをオーバーライドすると、プレースホルダテキストが揃えられなくなります。NSSearchFieldCellをオーバーライドすると、プレースホルダが中央に配置されない
たとえば、このカスタムNSSearchFieldCell
サブクラスを使用すると、NSCell
の描画メソッドをオーバーライドすると、プレースホルダテキストが左揃えになります。
class CustomSearchFieldCell: NSSearchFieldCell {
override func draw(withFrame cellFrame: NSRect, in controlView: NSView) {
super.draw(withFrame: cellFrame, in: controlView)
}
override func drawInterior(withFrame cellFrame: NSRect, in controlView: NSView) {
super.drawInterior(withFrame: cellFrame, in: controlView)
}
}
これも、検索フィールドをtrue
に検索フィールドのcentersPlaceholder
プロパティを設定し、再レイアウトの両方の後であるか、検索フィールドのstringValue
をリセットします。
(プレースホルダのテキストになるだろう、これらの2つのメソッドをコメントアウトして再度中心に虫眼鏡。
しかし、一つだけオーバーライドを(それは何もしませんし、唯一のスーパークラスの実装)を呼び出していても検索フィールドのプレースホルダテキストと左寄せになっ拡大鏡はなるだろう。
質問は01を取得する方法であり、が動作していて、まだカスタム図面がありますか?
セル内でカスタム描画とマウス操作を行う必要があるため、上書きが必要です。
これはmacOS 10.12.6で観察されました。
私は自分のコードを調べたので、同じ要件がありましたが、私のアプリでこのことを実現するためのメソッドを使用していませんでした。私はdrawメソッドを使用しませんでした。 –