Mavericks: come disabilitare lo scorrimento reattivo


10

Lo scrolling reattivo sta causando molti problemi per me. È bello quando funziona, ma a volte è molto in ritardo, specialmente in Chrome.

Qualcuno ha scoperto un modo per disabilitare lo scorrimento reattivo e far sì che lo scorrimento si comporti come in 10.8? A livello globale o per app.

Durante il video WWDC "Ottimizzazione del disegno e dello scorrimento su OS X", l'Assistente tecnico Apple utilizza quello che sembra un file AppleScript per disabilitare lo scorrimento reattivo a livello globale, quindi è possibile, ma non riesco a capire come.


1
Lo scorrimento "reattivo" è assolutamente terribile per me su un MacBook del 2009. Ho avuto ottime prestazioni di scorrimento con Mountain Lion, ma ora lo scorrimento è così instabile che non riesco a scorrere ciò che voglio vedere. È davvero frustrante.
OregonTrail

Questo descrive perfettamente i problemi che sto riscontrando ... Per quello che vale, sono su un MacBook Pro 2012.
Bogdansrc,

@bogdansrc In termini di Chrome hai provato a eliminarlo e a reinstallarlo?
Simon,

@Simon sì, ci ho provato. Questo è anche su una nuova installazione di Mavericks.
Bogdansrc,

Risposte:


4

In primo luogo sto pubblicando questo come possibile informazione utile piuttosto che una soluzione. Che potrebbe portare qualcuno nella giusta direzione.


L'ho trovato nelle Novità di OSX, che spiega come e cosa funziona lo scorrimento reattivo.

In fondo c'è anche una nota che dice come disabilitarlo per app a scopo di test.

Ma non vedo questa opzione nelle mie app costruite o in altre.

Scorrimento reattivo

Lo scorrimento reattivo è un miglioramento di AppKit che rende lo scorrimento più fluido. Ciò comporta due modifiche significative al modo in cui l'app estrae i contenuti:

Le viste di scorrimento chiedono alle viste secondarie di disegnare contenuti extra al di fuori della normale area di visualizzazione in modo che i contenuti possano essere immediatamente resi disponibili a scopo di scorrimento. Questo supporto finestra aggiuntivo viene archiviato nella memoria eliminabile per ridurre al minimo il paging aggiuntivo. Il thread di scorrimento tenta di ridisegnare la vista a 60 frame al secondo, ma si arresta se l'app non è in grado di tenere il passo. Gli eventi a scorrimento vengono elaborati su un thread in background. La maggior parte delle app riceve automaticamente questo comportamento di scorrimento reattivo. Tuttavia, alcune viste devono esplicitamente attivare, tra cui viste supportate da livelli, sottoclassi personalizzate di vista di scorrimento o vista di clip che sovrascrivono drawRect: viste di documenti basate su NSSurface, viste di documenti trasparenti e viste di documenti che sovrascrivono il metodo lockFocus.

Per le viste in cui lo scorrimento reattivo è abilitato automaticamente, la modifica del comportamento dovrebbe essere completamente trasparente per te come sviluppatore. Tuttavia, se la tua app mostra comportamenti insoliti durante lo scorrimento, ti preghiamo di archiviare i bug.

Nota: puoi disabilitare temporaneamente lo scorrimento reattivo a scopo di test scegliendo File> Ottieni informazioni sulla tua app nel Finder. Dopo aver modificato l'impostazione, è necessario chiudere e riavviare l'app. Per maggiori dettagli, vedi le Note di rilascio di AppKit per OS X v10.9.

Ho dato un'occhiata alle note sulla versione dell'appkit -Responsive Scrolling che sono più dettagliate.

Esistono condizioni che dovrebbero impedire l'assegnazione dello scorrimento reattivo a un'app. Uno di essi è:

I collegamenti dell'applicazione su 10.7 o precedenti (l'applicazione deve essere collegata su Mountain Lion o superiore per supportare questa funzione)

Il che intendo dire se l'App è costruita per funzionare anche su 10.6, quindi non verrà aggiunta questa funzionalità.

Chrome AFAIK funzionerà dal 10.6 in poi. Ma sospetto che il downloader stia scaricando una versione per il tuo sistema attuale.

Forse una versione costruita per 10.6 la disabiliterebbe solo in Chrome.


AGGIORNAMENTO * Ma come sottolinea bogdansrc nei commenti. Non esiste una build singola per 10.6


Ho provato:

defaults write ~/Library/Preferences/com.google.Chrome isCompatibleWithResponsiveScrolling -bool NO

Ma isCompatibleWithResponsiveScrolling è per una sottoclasse nsview e non mi aspetto davvero che funzioni. Inoltre non sto riscontrando questo problema, quindi non posso dirlo.


Sembra un trucco interessante
New Alexandria,

L'ipotesi "funziona su 10.6 => non ha uno scorrimento reattivo" non è corretta. Si tratta dell'SDK a cui si collega l'app. È possibile disporre di un collegamento all'app con l'SDK 10.9 e funzionare correttamente su 10.6. Per quanto ne so, l'approccio generale è quello di collegare l'ultimo SDK, quindi molto probabilmente Chrome lo fa. In caso contrario, non avrebbe uno scorrimento reattivo. Non ci sono più versioni di Chrome in base alla versione di OS X in uso. È sciocco.
Bogdansrc,

Quello che sto sostanzialmente cercando di dire e interpretare dalle note di Apple in modo errato o corretto è se Base sdk è 10.6 e non è collegato a nessuna delle precedenti, quindi per quanto ho capito l'app non avrà RS. Inizi così bene ma poi lo rovini insultandoti con "Quello è stupido". Un semplice "Non c'è solo 10.6 Chrome" sarebbe stato sufficiente. Le app possono avere build per sistemi operativi più vecchi che non si installeranno o funzioneranno sul sistema operativo più recente. Questo è quello a cui stavo pensando.
markhunte,

4

AGGIORNAMENTO (7.XI.2013 dopo la chiamata ad Apple Care):

Avevo bisogno anche di:

1) reimpostazione della PRAM (dopo lo spegnimento, l'accensione mentre si tiene premuto CMD + ALT + P + R fino al secondo gong), come fare sul Mac: https://support.apple.com/kb/ht1379

2) reimpostazione di SMC (dopo lo spegnimento, l'accensione mentre tieni premuto MAIUSC + CTRL + ALT (opzione) + ALIMENTAZIONE) come fare sul tuo mac: https://support.apple.com/kb/HT3964

L'INSTALLAZIONE SOTTO DOVREBBE ESSERE: con inerzia


Probabilmente NON è la soluzione permanente, ma un hack rapido e comodo rispetto al riavvio del sistema.

Ha funzionato per me. Mi dispiace che gli screenshot siano in polacco. Ad ogni modo, dovresti gestirlo grazie a immagini / icone.

Prima apri Accessibilità dalle Preferenze di Sistema

inserisci qui la descrizione dell'immagine

Quindi nelle impostazioni del touchpad / mouse, fare clic sul pulsante touchpad

inserisci qui la descrizione dell'immagine

Quindi gioca con / senza inerzia.

inserisci qui la descrizione dell'immagine


Penso che lo scrolling reattivo sia diverso dallo scroll di inerzia ...
DanHickstein

1
@DanHickstein è una specie di soluzione alternativa.
andilab

Hmmmm, penso che lo scrolling reattivo sia una novità per far funzionare lo scrolling a 60 fps, come discusso qui: developer.apple.com/library/mac/releasenotes/MacOSX/… Non sono sicuro che abbia qualcosa a che fare con lo scorrimento inerziale.
Dan Hickstein,

Forse no. Ma io e pochi utenti abbiamo capito che giocare con l'interial consente di eliminare i problemi con il frezzing in Chrome.
andilab

2
Disabilitare lo scorrimento inerziale non è un'opzione per me (odio lo scorrimento non inerziale). Inoltre, lo scorrimento reattivo non è correlato allo scorrimento inerziale. Lo scorrimento è reattivo con o senza inerzia.
Bogdansrc,

1

Ho chiesto a John Siracusa su Twitter:

https://twitter.com/siracusa/status/394988398009925632

@siracusa Hai trovato un modo per disattivare lo "scorrimento reattivo" nei maverick? Sembra strano

La sua risposta fu molto concisa:

https://twitter.com/siracusa/status/394988398009925632

@davidmarsh No.

Immagino che ciò non significhi che non puoi disabilitarlo, ma solo che John non sa come spegnerlo.


2
Se Giovanni Siracusa non sa come, è molto probabile che non sia possibile. arstechnica.com/apple/2013/10/os-x-10-9

1
Un ingegnere Apple lo ha fatto usando quello che sembrava un AppleScript durante la sessione WWDC "Ottimizzazione del disegno e scorrimento su OS X". Il video è disponibile su developer.apple.com/wwdc/videos . Ciò non significa che sia ancora possibile nell'ultima build di Mavericks.
Bogdansrc,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.