【发布时间】:2014-07-12 18:38:12
【问题描述】:
我正处于设计应用程序的最后一步。 它基本上由两个表视图和其他视图组成。每个 TableView 都有自己的 TableViewController 类实例。 我想做的是在用户单击表格视图行之一时激活相应的菜单项。比如我想删除用户当前选择的文件,所以激活了文件菜单保存。但是如果他不在表格视图中,我想在菜单中将其变灰。
因此,我想使用 First Responder。我添加了菜单项,在 First Responder 中定义了一个动作删除:并将菜单项链接到该动作。 TableViewController 是 NSViewController 的子类。在 TableViewController.m 中,我编写了 init 方法(将视图控制器插入到响应者的链中):
[self setView:_tableView];
[self setNextResponder:self.view];
[self.view.subviews enumerateObjectsUsingBlock:^(NSView *subview, NSUInteger idx, BOOL *stop) { [subview setNextResponder:self]; }];
但是我的方法 delete: 没有被调用!当用户单击 tableview 时,它成为 First Responder 对吗?然后 ViewController 应该接收到动作。 否则,什么是 First Responder 以及如何设置? 我想我错过了什么!
【问题讨论】:
标签: objective-c first-responder nsviewcontroller