我有一个NSTableView
,我希望能够突出显示一行或多行,然后点击delete
键将其删除,或点击Cmd+C
复制它们到了粘贴板。
我发现了一个建议,即继承NSTableView,然后为
编写方法 -(void)copy:(id)sender
文档说很少需要继承NSTableView
。而是使用dataSource或delegate,或子类化子组件。委托和dataSource协议不处理菜单命令或键盘快捷方式。如果我尝试继承子类,我遇到一个问题,其中子类需要向委托发送消息,但我的自定义方法不是协议的一部分,所以编译器抱怨。我宁愿知道解决这个问题的“正确”方法,而不是打击设计模式。
答案 0 :(得分:1)
我通过将NSTableView
的父窗口委托声明为NSTableView
的控制器(也是dataSource
和delegate
)解决了我的问题。现在它接收菜单操作作为响应者链的一部分。