makeFirstResponder和becomeFirstResponder有什么区别?

时间:2014-11-03 23:29:30

标签: macos nstableview

我花了很多时间试图找出如何在删除行之后将焦点保持在NSTableView列中,而不仅仅是保留选择。我是这样做的:

[[myTableView window]makeFirstResponder:myTableView];

为什么上面的代码有效,但下面的代码没有?

[myTableView becomeFirstResponder];

1 个答案:

答案 0 :(得分:5)

-makeFirstResponder:是窗口的请求,它使指定的响应者成为其第一个响应者。 -becomeFirstResponder是响应者的通知,它即将成为第一个响应者。它本身并不会引起国家变化;它使接收者有机会对由-makeFirstResponder:引起的状态变化作出反应。

您不应该致电-becomeFirstResponder(除非可能会在覆盖中拨打super)。框架在必要时调用它。