Skip navigation.
 
mlRe: NSTableView and automatically hiding scrollers
FROM : Evan Schoenberg
DATE : Fri Dec 24 07:39:09 2004

I've seen this same problem in various contexts... I usually end up
using minimum sizes to keep the table outside the range in which the
oddness occurs.

You could submit this (with your nicely detailed description -- also,
attach you actual sample project) to bugreporter.apple.com.

-Evan

On Dec 24, 2004, at 12:34 AM, <email_removed> wrote:

> An NSTableView with scrollers set to hide automatically doesn't seem
> to behave
> properly.  At
> times a horizontal or vertical scroller appears, even when not
> necessary.  At
> other times, a
> space appears for the scroller (the "knob slot"), but no scroll knob
> or button
> is present.  As well,
> the scroll knob size is at times incorrect.
>
> It's easy to replicate this behaviour.  Create a project with one
> window.  In
> the window, place a
> table view, and size it to fill the window.  Leave all the options as
> they
> are, *except*
> "Automatically Hide Scrollers" - that should be checked.  Finally, set
> the
> table view so that it
> resizes with the window.
>
> For the data source, set numberOfRowsInTableView:  to return 10 (this
> is
> arbitrary; other values
> have the same behaviour), and tableView:objectValueForTableColumn:row:
> to
> return the current
> date.  (If this sounds familiar, it's basically the example in the
> Learning
> Cocoa book, pages 153
> to 158, but even simpler).
>
> (1) Now, start the program.  By default, it should be big enough to
> display
> all the rows, but if it
> isn't, size it so that it's big enough to do so.  Then, very slowly,
> shrink
> the window vertically.
> When the window becomes one pixel too small to hold the entire table,
> you
> would expect a
> vertical scroller, and only a vertical scroller, to appear.  Instead,
> however:
>
> - a horizontal scroller appears
> - a vertical scroller appears (as it should), but the scroll knob is
> too
> small
>
> Now, shrink the window vertically one more pixel.  More strangeness:
>
> - the horizontal scroller disappears
> - the vertical scroller is the correct size
>
> In other words, things are now as they should be.  Further shrinking
> of the
> window is handled
> correctly.
>
> (2) Now resize the window so that it's big enough to contain the
> entire table
> again.  The
> scrollers disappear, as they should.  Once more, shrink the window
> vertically,
> very slowly, until,
> as before, the horizontal and vertical scrollers appear.  This time,
> instead
> of shrinking the
> window again, expand it one pixel.  You would expect the scrollers to
> just
> disappear.  But no,
> more strangeness:
>
> - the scroll knobs and buttons disappear on both scrollers, but not
> the knob
> slots
>
> Note that there's a row behind the horizontal knob slot, and Cocoa
> knows about
> it.  If you select
> one of the rows and use the arrow key to move down, you can select the
> bottom
> row.  However,
> a bit more strangeness:
>
> - when the bottom row is selected, the entire table is updated (you
> can see
> the times change
> for all the rows).  Normally only the selected row is updated.
>
> Further expanding the table will eventually result in the horizontal
> and
> vertical knob slots
> disappearing entirely (and simultaneously).
>
> (3) This behaviour is nearly the same in the horizontal direction, but
> there
> are some differences:
>
> - shrinking it horizontally to the point where a horizontal scroller
> is just
> needed (you'll have to
> adjust column sizes to get this to happen) results in both scrollers
> erroneously appearing, and
> the horizontal scroll knob is the wrong size.  However, unlike the
> vertical
> case, expanding it
> doesn't result in the disappearance of just the knobs and buttons - the
> scrollers disappear
> entirely, as they should.
> - its notion of "a horizontal scroller is needed" doesn't depend on
> the size
> of the columns, nor
> the length of the text in them.  In fact, I'm not quite sure what it
> depends
> on.  Presumably
> there's a simple answer for this one; I haven't looked into it.  In
> any case,
> it certainly seems
> non-intuitive.
>
> So, any ideas?  This sure seems like a bug to me, but I couldn't find
> any
> references to it.  By the
> way, I'm on OS X 10.3.7, Xcode 1.5, and IB 2.4.2.
>
>
> Brian Schack            mailto: bschack-
> <email_removed>
> 19 Hsu Chang Street 2F    phone:  2381 4727
> Taipei 100            fax:    2381 2145
> TAIWAN
>
>
>  _______________________________________________
> Do not post admin requests to the list. They will be ignored.
> Cocoa-dev mailing list      (<email_removed>)
> Help/Unsubscribe/Update your Subscription:
> http://lists.apple.com/mailman/options/cocoa-dev/evan.<email_removed>
>
> This email sent to evan.<email_removed>
>

Related mailsAuthorDate
mlNSTableView and automatically hiding scrollers bschack-cocoa Dec 24, 07:34
mlRe: NSTableView and automatically hiding scrollers Evan Schoenberg Dec 24, 07:39