我的OSX应用程序嵌入了一个webview并显示一个自定义工具栏,用于编辑字体/颜色/字体大小等。 webview加载html,用户可以编辑它。我的问题是:
我知道这是可能的,因为webview具有我正在寻找的所有功能的右键菜单,但我想在我的工具栏中复制这些功能:
出于测试目的,我试图以这种方式设置字体大小但没有任何反应
[_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 ...... :(
答案 0 :(得分:2)
现在我可以回复我的回答,错误在于方法,WebView符合NSText行为,所以当webview是第一个响应者时,你应该使用标准方法来改变字体,颜色等,例如:
更改文字联系:
TextAlignementLeft:
[[self.view.window firstResponder] performSelector:@selector(alignLeft:) withObject:nil];
TextAlignementCenter:
[[self.view.window firstResponder] performSelector:@selector(alignCenter:) withObject:nil];
TextAlignementRight:
[[self.view.window firstResponder] performSelector:@selector(alignRight:) withObject:nil];
TextAlignementJustify:
[[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];
}