我正在做一些NSSearchFieldCell
子類的自定義繪圖。但是,覆蓋任何兩種繪圖方法都會導致佔位符文本不對齊。覆蓋NSSearchFieldCell導致佔位符不居中
例如,僅使用此替代NSCell
的繪圖方法的自定義NSSearchFieldCell
子類會導致佔位符文本左對齊。
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)
}
}
這甚至是搜索領域的centersPlaceholder
屬性設置爲true
兩者重新佈局搜索領域或重置搜索領域的stringValue
之後。
談到了這兩種方法將使佔位符文本(和放大鏡再次集中。
然而,僅僅一個覆寫(即使什麼都不做,只調用了其超實施)將使搜索領域的佔位符文本和放大鏡成爲左對齊。
的問題是,如何讓center align placeholder
工作,仍然有自定義繪圖?
請注意,我需要在單元格內執行一些自定義繪圖和鼠標處理,因此需要覆蓋。
這是在macOS 10.12.6上觀察到的。
當我看着我的代碼我有相同的要求,但我沒有使用任何方法來實現這個東西在我的應用程序也沒有使用繪製方法。 –