Search code examples
objective-ccocoanstextfield

How to resign focus on NSTextField when clicking outside


I've a NSView with a editable NSTextField and multiple other subviews like NSView, NSSlider, NSImage etc.

  1. After I've entered my text into the editable NSTextField and click on any of the other views, move the slider etc. I would like my NSTextField to lose focus. I've tried calling the resignFirstResponder, but that does not seems to work. How can I do this?
  2. When I mark the text inside my NSTextField a blue background behind the text is shown. How can I change the color is this?

Solution

  • Suppose that you have a subclass of NSView called clickView1.h. In reference to this post, you can achieve your goal in No. 1 as follows.

    - (void)mouseDown:(NSEvent *)event{
        AppDelegate *appDelegate = (AppDelegate *)[NSApp delegate];
        [appDelegate.window makeFirstResponder:nil];
    }
    

    As for No. 2, I don't understand the question.