1

我有一个NSTableView我希望能够突出显示 1 行或更多行的地方,然后点击delete键删除它们,或者点击⌘</kbd>+C to copy them to the pasteboard.

我找到了一个将 NSTableView 子类化的建议,然后编写一个方法

-(void)copy:(id)sender

文档说NSTableView很少需要子类化。相反,使用 dataSource 或委托,或子类化子组件。委托和数据源协议不处理菜单命令或键盘快捷键。如果我尝试子类化,我会遇到一个问题,即子类需要向委托发送消息,但我的自定义方法不是协议的一部分,因此编译器会抱怨。与其对抗设计模式,我更愿意知道解决这个问题的“正确”方法是什么。

4

1 回答 1

1

我通过将NSTableView' 父窗口的委托声明为NSTableView' 控制器(也是它的dataSourceand delegate)解决了我的问题。现在它接收菜单操作作为响应者链的一部分。

于 2013-02-09T19:11:52.303 回答