我正在使用macOS上的Objective C进行项目。该项目是基于文档的应用程序。每个窗口都包含一个WebView。我想实现copy:cut:和paste:在其中应根据在WebView中选择的对象启用/禁用这些操作的菜单项。我启动了一个新的基于文档的应用程序,并在AppDelegate.m中添加了以下代码:
- (void)copy:(id)sender {
NSLog(@"%@ %s", self, __func__);
}
- (BOOL)validateMenuItem:(NSMenuItem *)menuItem {
NSString *title = [menuItem title];
NSLog(@"%@",title);
return YES;
}
在将WebView添加到Document.xib文件之前,一切工作正常,并且copy和validateMenuItem函数均被正常调用。当我将WebView添加到Document.xib文件时,这些功能将停止工作。我尝试了许多事情(例如重写WebView类),但均未成功。我知道WebView已过时,但是使用WKWebView会导致其他问题。
答案 0 :(得分:1)
WebHTMLView
内的WebView
是copy:
操作的目标。 editingDelegate
中的WebView
可以拦截copy:
动作。实施
- (BOOL)webView:(WebView *)webView doCommandBySelector:(SEL)selector;
UIDelegate
中的WebView
可以验证“复制”菜单项。
- (BOOL)webView:(WebView *)webView validateUserInterfaceItem:(id<NSValidatedUserInterfaceItem>)item defaultValidation:(BOOL)defaultValidation;