Looks like no one’s replied in a while. To start the conversation again, simply ask a new question.

iOS like "rubber band" scrolling in Lion - Safari

Has anyone managed to disable the iOS like "rubber band" scrolling in the Lion version of Safari ? For instance when you scroll all the way up or down, a blank space is created, like on iOS , and releasing the scroll rubber bands the content to the top (or bottom).

MacBook Pro, Mac OS X (10.7)

Posted on Jul 29, 2011 11:20 PM

Reply
127 replies

Apr 14, 2012 7:02 AM in response to Allan Eckert

Right. And I came here looking for technical assistance. Unfortunately, there is apparently none available to fix this particular issue. Which is too bad, but it is still helpful to have this site to let me know not to bang my head trying to figure out a way to disable "bouncy" scrolling.


I really, really hate it. Seriously, it makes me ill, from motion sickness. And it annoys me to no end that I paid to upgrade to Lion, and in the process have downgraded my browsing experience. My solution is switch to non-Safari browsing, which is too bad, cause I was otherwise very happy w/ Safari. Is that a rant? I guess so. But if I hadn't come here and seen the link that you and others posted, I wouldn't have easily found a place to direct my complaint so that Apple will see it...


At the end of the day, this is about a community of Mac users helping each other. Swapping complaints is part of that communal experience, and will (hopefully) help lead to solutions. Telling someone with a legitimate issue to go join a Facebook group is about as antithetical to the idea of community as you get!

Apr 14, 2012 9:38 AM in response to Király

I did. I'm kinda attached to my wireless mouse, if you know what I mean....


I've got a buddy who works as an software engineer at Apple - I'm gonna email him and see if there is anything he can do about getting an "opt out" feature added. I'm sure some folks don't mind it, but it drives me NUTS. Seems like an off switch wouldn't be too hard to add....

Apr 15, 2012 8:11 AM in response to White Rabbit

It's in the code for the scrollBars and the the scrollViews. These are in EVERY LION APP. (also iOS)


There is a variable called bounces and methods to enable and disable it. If I had more time, I'd look them up and post them. Ahh, screw it.


On iOS, it's UIScrollView. Should be similar in the Mac OS. Either NSScrollView or iOS ScrollView. OMG. I hate their comment: 'Bouncing visually indicates that scrolling has reached an edge of the content." NO YOU IDIOTS! Reaching the END of the scroll region indicates that that scrolling has reached the end of the content.


With the ubiquity of these methods and variable It's simply IDIOTIC (and insulting to the way they have thought us to use the OS for the past 12 years) that Apple didn't simply offer us switch to use the approach that we prefer.


Properties and methods:


bounces

bouncesZoom

setBounces

setBouncesZoom


Docs follow:

bounces

A Boolean value that controls whether the scroll view bounces past the edge of content and back again.


@property(nonatomic) BOOL bounces


Discussion

If the value of this property is

YES
, the scroll view bounces when it encounters a boundary of the content. Bouncing visually indicates that scrolling has reached an edge of the content. If the value is
NO
, scrolling stops immediately at the content boundary without bouncing. The default value is
YES
.

Availability

Available in iOS 2.0 and later.

See Also

  •   @property alwaysBounceVertical
  •   @property alwaysBounceHorizontal


Declared In

UIScrollView.h

Apr 16, 2012 8:36 AM in response to White Rabbit

WR, I have been able to do a build of TextEdit that has the bouncy bits disabled. It's at home on one of my other Macs.


This is a first step.


I want to see if we can replace the app's plist in the (stupidly) protected Library folder with a variable that defaults to NO for bounces.


Also, I wonder if we could modify the scrollView header defailt value that hides in the system somewhere to set that to NO, but I'm not sure.


One BIG PROBLEM we have is that with many Lion codesigned apps, you can't modify one byte of the file or it will crash on launch. Totally blows. This is not the Apple we knew and loved.


Idoitic features like

"auto locking of files you haven't used in a while",

"bouncy views and scrollbars",

"sudden and automatic quitting of apps",

"versioning of things I don't want versioned",

"animated EVERYTHING".

"inability to turn gestures on or off on a per app basis",

"protected Library folder",

"code signing preventing us from ending app contents",


and not giving us control to turn these things off make Lion a terribly aggrivating experience and a NFW for me.


Why in **** should we have to pay money for an OS that has all this stuff - THAT WE WANT TO TURN OFF - and then have no (or no easy) way to actually turn them off? That is not an upgrade, that is a PITA.


Our time = money. And I want to keep the small amount of spare time that I have.


Thanks Apple. For making the OS suck and for screwing over your long time users.

Apr 16, 2012 4:25 PM in response to Király

Ya, I rebuilt the app from the source code in Xcode. What I want to do is find out how to put that "don't bounce" setting in a plist preference.


You can't modify the binary. If you try to, the code signing will force it to quit on launch.


Try it. Duplilcate the TextEdit app and right click on it and click Show Package Contents", then modify one of the files in there.


Close it and try to launch the app. BLAM. Instant crash.


Let me try to check the source to see if there is anything I can look at now.

Apr 28, 2012 2:00 PM in response to tbonecopper

Here is my research from the day.



On iOS, there is a thing called a UIScrollView. Setting bounces to 0 makes the scrolling not bounce.


Lion is different. It uses an NSScrollView. (I just did the research) In it is a property called "Elasticity" which determines this: Allow content to be scrolled past its bounds on this axis in an elastic fashion. Things that scroll generally sit within an NSScrollView on the screen. It turns out the NSScrollElasticity is responsable for that. It's defined in NSScrollView.h.



#if MAC_OS_X_VERSION_10_7 <= MAC_OS_X_VERSION_MAX_ALLOWED

enum {

NSScrollElasticityAutomatic = 0, // automatically determine whether to allow elasticity on this axis

NSScrollElasticityNone = 1, // disallow scrolling beyond document bounds on this axis

NSScrollElasticityAllowed = 2, // allow content to be scrolled past its bounds on this axis in an elastic fashion

};



If you open this folder, you can see the file on your hard drive.


/System/Library/Frameworks/Appkit.framework/Versions/C/Headers/NSScrollView.h


Dunno if modifying that file would help anything, but in any case, I would love for a preference file (pList) to automatically set all NSScrollViews for an app to use NSScrollView.NSScrollElasticity = NSScrollElasticityNone


I think that would work, but I don't yet know how to do it and do it for all apps.

Apr 29, 2012 9:15 AM in response to Alex Zavatone

Excellent work on this, Alex. ➕


I've tried quite a few combinations of things:


defaults write com.apple.safari NSScrollElasticityNone -bool yes

defaults write com.apple.safari NSScrollElasticityNone 1

defaults write com.apple.safari NSScrollView.NSScrollElasticity NSScrollElasticityNone

defaults write .GlobalPreferences NSScrollElasticityNone -bool yes

defaults write .GlobalPreferences NSScrollElasticityNone 1

defaults write .GlobalPreferences NSScrollView.NSScrollElasticity NSScrollElasticityNone

...and none have worked. 😟


I'm going to ask in another forum if anyone might know if and how it is possible to take your research to the next level.

iOS like "rubber band" scrolling in Lion - Safari

Welcome to Apple Support Community
A forum where Apple customers help each other with their products. Get started with your Apple ID.