Macos makeFirstResponder和becomeFirstResponder之间有什么区别?

Macos makeFirstResponder和becomeFirstResponder之间有什么区别?,macos,nstableview,Macos,Nstableview,我花了很长时间试图弄清楚如何在删除一行后在NSTableView列中保持焦点,而不仅仅是保留一个选择。我是这样做的: [[myTableView window]makeFirstResponder:myTableView]; 为什么上面的代码有效,而下面的代码无效 [myTableView becomeFirstResponder]; -makeFirstResponder:是对窗口的请求,它将指定的响应程序作为其第一响应程序-becomeFirstResponder是向响应者发出的通知,告

我花了很长时间试图弄清楚如何在删除一行后在NSTableView列中保持焦点,而不仅仅是保留一个选择。我是这样做的:

[[myTableView window]makeFirstResponder:myTableView];
为什么上面的代码有效,而下面的代码无效

[myTableView becomeFirstResponder];

-makeFirstResponder:
是对窗口的请求,它将指定的响应程序作为其第一响应程序<代码>-becomeFirstResponder是向响应者发出的通知,告知其即将成为第一响应者。它不会固有地导致状态改变;它使接收者有机会对由
-makeFirstResponder:
引起的状态变化作出反应


您不应调用
-becomeFirstResponder
(除非可能在覆盖中通过调用
super
)。框架根据需要调用它。

-makeFirstResponder:
是对窗口的请求,它将指定的响应程序作为其第一响应程序<代码>-becomeFirstResponder是向响应者发出的通知,告知其即将成为第一响应者。它不会固有地导致状态改变;它使接收者有机会对由
-makeFirstResponder:
引起的状态变化作出反应

您不应调用
-becomeFirstResponder
(除非可能在覆盖中通过调用
super
)。框架在必要时调用它