在具有WebView的macOS应用中实施复制:剪切:和粘贴:

时间:2018-08-08 18:58:50

标签: objective-c macos webview

我正在使用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会导致其他问题。

1 个答案:

答案 0 :(得分:1)

WebHTMLView内的WebViewcopy:操作的目标。 editingDelegate中的WebView可以拦截copy:动作。实施

- (BOOL)webView:(WebView *)webView doCommandBySelector:(SEL)selector;

UIDelegate中的WebView可以验证“复制”菜单项。

- (BOOL)webView:(WebView *)webView validateUserInterfaceItem:(id<NSValidatedUserInterfaceItem>)item defaultValidation:(BOOL)defaultValidation;