NSTextField辞职第一响应者

avi*_*ini 4 cocoa objective-c interface-builder

当用户完成编辑时,我正试图让我的文本字段重新响应第一响应者,就像他们点击进入时一样.委托方法被调用,但我现在所做的不起作用,这样做的正确方法是什么?

- (BOOL)control:(NSControl *)control textShouldEndEditing:(NSText *)fieldEditor
{
    [fieldEditor resignFirstResponder];
    return YES;
}
Run Code Online (Sandbox Code Playgroud)

Jos*_*zzi 22

从-resignFirstResponder方法的文档:

使用NSWindow makeFirstResponder:方法而不是此方法将对象作为第一个响应者.永远不要直接调用此方法.

这段代码应该这样做:

[myWindow makeFirstResponder:nil];
Run Code Online (Sandbox Code Playgroud)


Kib*_*tik 8

- (void)controlTextDidEndEditing:(NSNotification *)obj {

   [self.window makeFirstResponder:view];
}
Run Code Online (Sandbox Code Playgroud)

其中"view"是NSTextView控件的父NSView.