Mailing Lists: Apple Mailing Lists

Image of Mac OS face in stamp
 
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Data Browser questions



I've created a composited window with just a data browser (list view only) in Interface Builder that is populated with just text.

I've been struggling with problems such as selecting an item would sometimes make a window active, sometimes not.  When there are multiple selections, right-clicking will often clear the selection and select just the item right-clicked on, and other times do the proper thing by not changing the selection.  I finally discovered that the problem is that whitespace is treated inconsistently when using fill highlighting.  If a window is active and you click on anywhere on an item (including whitespace), the item is selected (which is what I want).  If its window is inactive and you click on the item's text, the item is selected and the window stays inactive (again, what I want).  However, if you click on the item's whitespace, the item is selected but its window is brought to the front (not what I want).  If you have multiple selections, right-clicking on an item's text preserves the multiple selections, right-clicking on an item's whitespace changes the selection to just that one item.  I guess my question is that is this all intentional?  I can tell you that it wasn't obvious to me so it surely won't be obvious to our users.

Before I realized what I consider to be inconsistent behavior was due to me using fill highlighting, I tried to work around it by adding a kEventWindowGetClickActivation handler.  However, it's never called.  I tried dynamically creating my DB and installing my window handlers before the DB is created but that didn't work.  I tried installing the click activation handler afterwards, but it's still never called.

So I grabbed the BasicDataBrowser sample, added debug messages to the kEventWindowGetClickActivation handler (and made sure it's handler is active by moving it out of the #if defined(typeQDPoint) block) and I get the same results... it's never called.  I've tried installing the window handler before and after the browser is created but I still get the same results.  I'm at a loss as to why this is happening because in searching the list, it seems others have handled kEventWindowGetClickActivation with a DB with no problems.

Are you supposed to install your window handler before a DB is created (which is what I would expect) or after?  What if you're using NIBs?

Something else I noticed with DBs.  If you're at the bottom of a really long list and then press the Home key, the scroll bar is set to the top but the list doesn't update.  I think the scroll bar still thinks it's at the bottom.  This was with a browser that had 30,000 rows.  I also had issues with horizontal scrolling in my DB causing columns next to the left edge of a window to draw incorrectly but I figured out what the problem was.  IB had set the top and left edge of my DB to -1.  DBs really don't like having their left or right edges outside of the window.

FWIW, I'm on 10.4.8.

-Chinh Nguyen

 email@hidden


 _______________________________________________
Do not post admin requests to the list. They will be ignored.
Carbon-dev mailing list      (email@hidden)
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/carbon-dev/email@hidden

This email sent to email@hidden



Visit the Apple Store online or at retail locations.
1-800-MY-APPLE

Contact Apple | Terms of Use | Privacy Policy

Copyright © 2007 Apple Inc. All rights reserved.