• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag
 

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
NSTableView - kill the blue (Obj-C)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

NSTableView - kill the blue (Obj-C)


  • Subject: NSTableView - kill the blue (Obj-C)
  • From: 2551 <email@hidden>
  • Date: Sun, 26 Jul 2015 19:25:34 +0700

I’ve been struggling with NSTableView for the last two days. All I want to do is ensure the alternative “gray” highlight is used on a selection consistently instead of the heavy blue. Here’s my code:

-(void) killBlue
{
    NSInteger selectedRow = [_tableView selectedRow];

    if ([_tableView selectedRow] != -1)		//only call this if there is a selection
    {
        NSTableRowView *myRowView = [_tableView rowViewAtRow:selectedRow makeIfNecessary:NO];

       [myRowView setSelectionHighlightStyle:NSTableViewSelectionHighlightStyleRegular];

        [myRowView setEmphasized:NO];

        [_tableView setSelectionHighlightStyle:NSTableViewSelectionHighlightStyleNone];

    }

}

I’m calling this from three places:

1. In -tableViewSelectionDidChange: //to take care of user-initiated selection changes
2. In -tabViewToggle	//because the blue comes back when the TabView the TableView is embedded in is switched back and forth

and

3 and in -(void)applicationDidBecomeActive:(NSNotification *)aNotification //because the blue comes back when the app is switched in and out of frontmost

1 and 2 work fine. At first 3 only worked when the app was switched in an out of focus with the cmd-tab app switcher keys, but not when mouse clicks were used to change the frontmost app. To solve that problem, I also had to ensure something else was firstResponder when the app was made frontmost.

I thought my troubles were over, until I discovered that despite those three implementations, I **still** get the blue highlighting in a situation where a row is highlighted (correctly appearing gray), then I click on any other app, then click back on the highlighted row (rather than somewhere else in the window) to make my app active again. Sure enough, there’s the blue. I’m exhausted trying to think of all the ways to defeat this blue highlighting and would appreciate some guidance.

I’ve seen SE posts suggesting subclassing NSTableRowView, but I don’t understand why, since the property setEmphasized already exists in the parent class and should work across the board (shouldn’t it??).

Any thoughts much appreciated.


Best

Phil


_______________________________________________

Cocoa-dev mailing list (email@hidden)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:

This email sent to email@hidden


  • Follow-Ups:
    • Re: NSTableView - kill the blue (Obj-C)
      • From: Ken Thomases <email@hidden>
  • Prev by Date: Re: WKWebView loading local files (and relative paths)
  • Next by Date: Re: WKWebView loading local files (and relative paths)
  • Previous by thread: Re: WKWebView loading local files (and relative paths)
  • Next by thread: Re: NSTableView - kill the blue (Obj-C)
  • Index(es):
    • Date
    • Thread