gpt4 book ai didi

macos - 如何在 Cocoa WebView 中编辑所选文本的字体、大小和颜色

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

我的 OSX 应用程序嵌入了一个 Web View 并显示一个用于编辑字体/颜色/字体大小等的自定义工具栏。webview 加载 html 并且用户可以对其进行编辑。我的问题是:

  1. 如何编辑所选文本的文本属性,例如字体、颜色或大小?
  2. 如何知道光标所在文本部分的字体属性? (我想更改工具栏中显示的信息)

我知道这是可能的,因为 WebView 具有包含我正在寻找的所有功能的右键菜单,但我想在我的工具栏中复制此功能:

enter image description here

出于测试目的,我尝试以这种方式设置字体大小,但没有任何反应

[_contentWebView changeFont:[NSFont systemFontOfSize:32]];
[_contentWebView setNeedsDisplay:YES];

关于 webview 中编辑功能的苹果文档真的很差( creepy example ),有人可以在找到有关 webview 的丰富文档时向我推荐一个教程、一本书或其他东西吗?

更新:

我可以使用以下代码检索所选的 HTML:

-(NSString *)getSelectedHtml
{
DOMRange *ff = [self selectedDOMRange];
NSString *marki = [ff markupString];
return marki;
}

但我不想直接操作 html...:(

最佳答案

现在我可以回复我的答案了,错误在于方法中,WebView 符合 NSText 行为,因此当 webview 是第一响应者时,您应该使用标准方法来更改字体、颜色等,例如:

更改文本对齐方式:

文本左对齐:

[[self.view.window firstResponder] performSelector:@selector(alignLeft:) withObject:nil];

文本对齐中心:

[[self.view.window firstResponder] performSelector:@selector(alignCenter:) withObject:nil];

文本右对齐:

[[self.view.window firstResponder] performSelector:@selector(alignRight:) withObject:nil];

文本对齐对齐:

[[self.view.window firstResponder] performSelector:@selector(alignJustified:) withObject:nil];

添加或删除粗体和斜体等字体特征:

case ToolbarToolBold:
{
NSButton * dummyButton = [[NSButton alloc] init];
BOOL enabled = [(NSNumber*)value boolValue];
[dummyButton setTag:2];
if(enabled)
{
[fontManager addFontTrait:dummyButton];
}
else
{
[fontManager removeFontTrait:dummyButton];
}
}
break;
case ToolbarToolItalic:
{
NSButton * dummyButton = [[NSButton alloc] init];
BOOL enabled = [(NSNumber*)value boolValue];
[dummyButton setTag:1];
if(enabled)
{
[fontManager addFontTrait:dummyButton];
}
else
{
[fontManager removeFontTrait:dummyButton];
}
}
break;
case ToolbarToolUnderline:
{
[[self.view.window firstResponder] performSelector:@selector(underline:) withObject:nil];
}

关于macos - 如何在 Cocoa WebView 中编辑所选文本的字体、大小和颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19632295/

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