2012-03-25 2 views
0

Also, es funktioniert gut, wenn ich die Bearbeitung für das Textfeld/textfieldcell deaktivieren ... durch Code oder Interface Builder.Warum zeichnet eine bearbeitbare Cocoa-Textfeldzelle keinen Schatten?

enter image description here (beachten Sie den leichten Schatten)

Aber sobald ich es bearbeitbar zu machen ([Zelle setEditable: JA]) der Schatten vollständig verschwindet:

enter image description here

Ich habe versucht, einen Schatten zeichnen Zwei Möglichkeiten: Eine, NSBackgroundStyleRaised, und zwei, überschreiben - (void)drawInteriorWithFrame:(NSRect)cellFrame inView:(NSView *)controlView, um manuell einen Schatten zu erstellen. Beide Stile/Möglichkeiten zum Zeichnen eines Schattens hören auf zu arbeiten, sobald die Zelle bearbeitbar gemacht wurde. (Um es deutlich zu machen, sollte das Endergebnis eingelassener, editierbarer Text sein. Die obigen Bilder dienten nur als Demonstration.)

Kann mir jemand sagen warum? Und wie kann ich dieses Problem umgehen?

+0

Interessant, frage mich, ob es Teil des gleichen Problems in iOS ist, siehe meine Frage: http://stackoverflow.com/questions/7444473/uitextfield-text-colour-goes-invisible-when-editing-is-this -ein Käfer . Vielleicht, wenn ein Textfeld editierbar ist, wird die ausgefallene Zeichnung ausgeschaltet? – jrturton

Antwort

0

Ich glaube, ich herausgefunden, warum, zumindest teilweise -

Weil ich - (void)drawInteriorWithFrame:(NSRect)cellFrame inView:(NSView *)controlView wurde mit dem Schatten setzen, und weil bei der Bearbeitung wird die field editor auch die Zeichnung zu tun (und es wird nicht durch die oben genannten Methode) der Schatten gilt nicht für sie.

Die Bestätigung dafür könnte nett sein, aber jetzt werde ich annehmen, dass dies der Grund ist, warum der Schatten nicht zeichnet.

Verwandte Themen