我花了很多时间试图找出如何在删除行之后将焦点保持在NSTableView列中,而不仅仅是保留选择。我是这样做的:
[[myTableView window]makeFirstResponder:myTableView];
为什么上面的代码有效,但下面的代码没有?
[myTableView becomeFirstResponder];
答案 0 :(得分:5)
-makeFirstResponder:
是窗口的请求,它使指定的响应者成为其第一个响应者。 -becomeFirstResponder
是响应者的通知,它即将成为第一个响应者。它本身并不会引起国家变化;它使接收者有机会对由-makeFirstResponder:
引起的状态变化作出反应。
您不应该致电-becomeFirstResponder
(除非可能会在覆盖中拨打super
)。框架在必要时调用它。