Frage

Leider ist dies schwer für mich, mich zu testen, da ich noch eine Magic Mouse meiner eigenen zu bekommen, aber ich habe durch meine Tester gesagt worden, die eine magische Maus tun haben, dass die Dynamik Scrollen in meiner app funktioniert nicht . Ich habe nicht NSScrollView, aber Scroll der Dokumentansicht ist alle benutzerdefinierten subclassed. Ich habe nicht Scrollrads außer Kraft gesetzt: überall, entweder, und doch Schwung scheinbar einfach nicht funktioniert. Ich bin mir nicht einmal sicher, wo man anfangen soll. Ich dachte, es würde nur Scrollrads Ereignisse und Dinge kümmern würde sich schicken. (Scrolling mit einem Rad oder auf dem MBP Trackpad funktioniert wie erwartet.) Offensichtlich muß ich irgendwie etwas tun, dass es zu stoppen, aber ich weiß nicht einmal, wo man anfangen soll. Gedanken?

War es hilfreich?

Lösung

Ich dachte, dies vor einer Weile und das Problem war, dass auf blättern, ich war viel Phantasie Ansicht Manipulation tun etwas wie, wie auf dem iPhone die UITableView hinzufügt und entfernt Ansichten, wie sie bewegen auf und außerhalb des Bildschirms. Diese für die Leistung super funktioniert - aber je mehr ich habe in OSX Programmierung, desto mehr erkannte ich dies für OSX falsch war (aber die richtige Idee von iPhone)

.

Wie auch immer, was wirklich vor sich geht, so scheint es, ist, dass, wenn Sie so etwas wie ein Radrolle tun, wird das Scroll-Ereignis in die Ansicht gesendet, dass die unter dem Cursor der Maus und dann plätschert es auf den Responder / Ansichten, bis sie irgendwo bekommt dass Griffe es. Normalerweise ist dies kein Problem, aber mit Schwung das OS Scrollen wirklich nur immer kleinere Scrollrads Ereignisse zur Ansicht senden, die unter dem Cursor war zum Zeitpunkt des Impuls gestartet . Das heißt, wenn die Sicht im Verlauf des Scrollens entfernt wird (weil es außerhalb des Bildschirms oder etwas scrollt), ist es die Kette bricht und der Impuls stoppt, weil die Ansicht, dass nach wie vor ist die Scrollrads Nachrichten bekommen ist nicht mehr in der Ansicht Hierarchie.

Die „einfache“ Lösung nicht die Ansicht zu entfernen, die das letzte Scrollrads Ereignis bekam - auch wenn es außerhalb des Bildschirms ist. Je besser fix (und die, die ich mit gegangen) ist nicht zu versuchen, NSViews zu verwenden, wie sie UIViews sind und stattdessen ziehen nur den Inhalt mit drawRect. :) Das ist nicht nur etwa eine Milliarde mal schneller, es funktioniert einfach (tm) mit Schwung Scrollen, weil es ist, wie OSX Dinge getan werden erwartet.

Sprich mir nach: OSX ist nicht iPhoneOS ..: P

Andere Tipps

Odd Scrollen Verhalten kann auftreten, wenn Sie nicht die Linie Scroll und Seite Scroll Eigenschaften des NSScrollView selbst gesetzt haben.

Darüber hinaus sind Sie ganz einfach gehen zu müssen eine Magic Mouse bekommen - einfach gesagt oder nicht :-) - dies selbst zu testen oder den gesamten Code der benutzerdefinierten Ansicht Post sowie die xib es enthält. Es gibt keine Möglichkeit, andere Sie mehr bieten können als Vermutungen (wie oben), ohne es.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top