Reputation: 14934
I've a NSView with a editable NSTextField
and multiple other subviews like NSView, NSSlider, NSImage etc.
resignFirstResponder
, but that does not seems to work. How can I do this?Upvotes: 5
Views: 5201
Reputation: 15015
Try the following method:
[[NSApp mainWindow] performSelector:@selector(resignFirstResponder:)
withObject:yourTextfield
afterDelay:0.0];
Upvotes: 0
Reputation: 22707
For question 1, I agree with BlueTomato that you need to make something else first responder, not call resignFirstResponder
. For question 2, subclass NSTextFieldCell
, and in the subclass, have an override like this:
- (NSText *)setUpFieldEditorAttributes:(NSText *)textObj
{
[super setUpFieldEditorAttributes: textObj];
if ([textObj isKindOfClass: [NSTextView class]])
{
NSTextView* textView = (NSTextView*) textObj;
[textView setSelectedTextAttributes:
[NSDictionary dictionaryWithObjectsAndKeys:
[NSColor redColor],
NSBackgroundColorAttributeName,
nil] ];
}
return textObj;
}
Upvotes: 3
Reputation: 6707
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.
Upvotes: 9