Ich habe eine spezielle Schiebereglerzelle implementiert, die Bilder für die Bildlaufleiste und den Drehknopf überzeichnen kann. Das einzige Hindernis, das jetzt im Weg ist, ist das: Wenn ich den Knopf schnell ziehe, werden die Bilder durcheinander gebracht. Ich habe einen Screenshot gepostet.
Hier ist der Code:
%Vor%ah ich bin so nah. jede Hilfe bezüglich, warum dies geschieht und wie man es löst, wird sehr geschätzt, danke!
Entfernen Sie alle Nachrichten -lockFocus
und -unlockFocus
. Das Framework kümmert sich darum, den Zeichnungskontext für Sie einzurichten, bevor -drawBarInside:flipped:
oder -drawKnob:
gesendet werden.
Außerdem sollten Sie keine Objekte innerhalb einer Zeichenmethode erstellen.
Ha, es ist eine andere Geschichte. Nein, NSResponder hat Recht und Sie sollten alle "lockFocus" -Stücke entfernen. Dieses Problem ist jedoch auf den Standard-Schieberegler zurückzuführen, der von der NSSliderCell irgendwo außerhalb von drawBarInside gezogen wurde: gewendet: umgedreht. Ich habe dieses Problem auch vor nicht allzu langer Zeit gesehen.
Hier ist Diskussion und Lösung: Ссылка , in Kurz, Sie können ganze drawCell überschreiben: inView: oder verwenden Sie einen "Dirty Hack Trick" mit dem Überschreiben einer privaten Methode. Ich persönlich mag keine Hacks, aber in diesem Fall habe ich
%Vor%Und es hat das Problem für mich gelöst
Tags und Links objective-c cocoa nsslider