2015-06-28 59 views
1

我得到了一個N​​STextField,看起來很好,直到它退出第一個響應者。NSTextField在退出第一響應者後繪製白色區域

enter image description here

它繪製一個白色矩形,直到它再次成爲第一個響應者。任何想法如何避免這種情況?

+0

您是否在阻塞UI的主線程上使用任何繁重的代碼?另一個想法是,如果你是使用分層/託管視圖並獲取正確的圖層更新? (即layerContentsRedrawPolicy)等... –

+0

我不阻止主線程,但我使用核心動畫,因此視圖是作爲一個原因問題層支持。如果我更改重畫策略,錯誤仍然會發生。 – floschliep

+0

嘗試設置(swift)'theNSTextField.drawsBackground = true'或(Obj-C)'[theNSTextField setDrawsBackground:YES]' –

回答

0

繪圖問題似乎是由TextField的單元而不是由TextField本身引起的。這個奇怪的解決方法修復了這個問題:

class TextFieldCell: NSTextFieldCell { 

    override func drawInteriorWithFrame(cellFrame: NSRect, inView controlView: NSView) { 
     super.drawInteriorWithFrame(cellFrame, inView: controlView) 
    } 

} 
+0

這可解決背景顏色問題,但會導致佔位符文本從未聚焦的文本字段中消失。 – Joey

相關問題