-makeFirstResponder: . NSWindow NSResponder.
- (void)menuWillOpen:(NSMenu *)menu {
[[NSApp mainWindow] makeFirstResponder:yourTextInputField];
}
, , , . , , -acceptsFirstResponder: YES
- (BOOL)acceptsFirstResponder {
return YES;
}
Edit: Ah, look that you do not have a key window. It appears that NSMenu actually has a window associated with it, and it is safe to call -makeFirstResponder:. In some discussion here, it is suggested to override -viewDidMoveToWindow:in your view containing your text box in NSMenu, for example:
- (void)viewDidMoveToWindow {
[super viewDidMoveToWindow];
[[self window] makeFirstResponder:yourTextInputField];
}
source
share