0

在我的NSDocument-based应用程序中,我的文档窗口只包含一个 WebView。我已经在我的子类中定义了剪切:复制:粘贴:和删除:,NSWindowController否则它们运行良好,但是这些菜单项对我来说是禁用的,除非 WebView 有一些文本需要做。

据我了解,这似乎违反了响应者链的规则;如果你不能用它做某事,你应该传递它,但似乎 WebView 只想禁用它已定义方法的项目,而不是与我的窗口控制器玩球。当 WebView 与它没有任何更好的关系时,如何让 WebView 合作并向我的控制器产生响应和 UI 验证?

4

1 回答 1

0

允许对菜单项做它喜欢的WebView事情,没有合同规定它必须将验证责任传递给响应者链。事实上,这很可能会破坏许多应用程序,例如,copy:在他们的NSWindowControllerorNSDocument类中实现方法并且不需要处理来自WebView.

您需要子类化WebView并实现validateMenuItem:. 然后,您可以控制您感兴趣的方法的菜单验证,并为您不感兴趣的方法调用super

于 2011-07-09T01:09:27.777 回答