gpt4 book ai didi

objective-c - 在 cocoa 的 web View 中右键单击时重命名默认上下文菜单标题 [ Objective-C ]

转载 作者:行者123 更新时间:2023-12-03 17:46:31 24 4
gpt4 key购买 nike

我需要在 WebView 的新选项卡中打开一个链接。但在右键单击时,上下文菜单显示在新窗口中打开链接以及其他菜单,但没有在新选项卡中打开链接。单击在新窗口中打开链接后,它将在新选项卡中打开(我启用了选项卡模式)。但我无法将标题在新窗口中打开链接更改为在新选项卡中打开链接并且如果我更改标题,它不会工作。我还找不到解决方案。我使用的是 webView,而不是 WKWebView。

如果我的问题重复,请引用原始问题。

请实现 Objective-C ..

编辑:我的代码

-(NSArray *)webView:(WebView *)sender contextMenuItemsForElement:(NSDictionary *)element defaultMenuItems:(NSArray *)defaultMenuItems
{
NSMutableArray *modifiedMenuItems=[[NSMutableArray alloc]init];
modifiedMenuItems=[defaultMenuItems mutableCopy];
NSMenuItem *mItem=[[NSMenuItem alloc]init];
int i=0;
while(i<[modifiedMenuItems count])
{
mItem=[modifiedMenuItems objectAtIndex:i];
if([mItem tag]==WebMenuItemTagOpenLinkInNewWindow)
{
[mItem setTitle:@"Open Link in New Tab"];
[modifiedMenuItems replaceObjectAtIndex:i withObject:mItem];
//Here I renamed the title and replaced. But it doesn't works.
//It is showing like a disabled one.
//So I added the next line code prior to replacement.
[mItem setEnabled:YES];
}
}
return modifiedMenuItems;
}

最佳答案

[modifiedMenuItems ReplaceObjectAtIndex:i withObject:mItem]mItem 替换为 mItem(NSArray *)modifiedMenuItems 在运行时不执行任何操作。找到该项目并设置标题:

-(NSArray *)webView:(WebView *)sender contextMenuItemsForElement:(NSDictionary *)element defaultMenuItems:(NSArray *)defaultMenuItems
{
for (NSMenuItem *mItem in defaultMenuItems)
{
if ([mItem tag] == WebMenuItemTagOpenLinkInNewWindow)
{
[mItem setTitle:@"Open Link in New Tab"];
break;
}
}
return defaultMenuItems;
}

仅此而已。其他问题不是由重命名项目引起的。

关于objective-c - 在 cocoa 的 web View 中右键单击时重命名默认上下文菜单标题 [ Objective-C ],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56108036/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com