首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CKEditor和NSColorPanel:一个谜

CKEditor和NSColorPanel:一个谜
EN

Stack Overflow用户
提问于 2012-09-22 11:29:01
回答 1查看 247关注 0票数 0

我正在使用CKEditor在Cocoa应用程序中集成HTML。

到目前为止,除了一件事外,它的工作原理是:如果我在应用程序中的任何地方打开一个NSColorPanel并选择一个颜色,那么CKEditor中选择的颜色就会自动发生变化!

怎么会发生这种事?NSColorPanel ( Cocoa窗口)如何与CKEditor (一个HTML!)通信?最后,我怎样才能防止这种行为?

我是通过子类WebView和重写initWithFrame:frameName:groupName来加载initWithFrame:frameName:groupName的。

代码语言:javascript
复制
- (id) initWithFrame:(NSRect)frame frameName:(NSString *)frameName groupName:(NSString *)groupName {
    if (self = [super initWithFrame:frame frameName:frameName groupName:groupName]) {
        NSURL *baseURL = [[NSBundle bundleForClass:self.class] URLForResource:@"ckeditor" withExtension:nil];
        [self.mainFrame loadHTMLString:kCKEditorTemplate baseURL:baseURL];
    }
    return self;
}

NSColorPanel是这样打开的:

代码语言:javascript
复制
- (IBAction)menuColor:(id)sender {
    [[NSColorPanel sharedColorPanel] orderFront:self];
}

我到目前为止发现了什么,

  • WebView类引用表明WebView实现了changeColor:

此方法由NSColorPanel发送方调用,其行为类似于NSTextView中的changeColor:方法。

但是,我尝试过重写changeColor:,并且没有调用它。

  • 当通过NSColorPanel更改选择颜色时,CKEditor添加一个<font>元素而不是<span>元素(就像通过工具栏更改文本颜色时一样)。这意味着选择的颜色不会被传统的方法改变(也许是纸板?)。
  • NSFontPanel也会发生同样的情况。
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-09-22 15:02:10

我没有任何关于可可和网络视图的经验,我只能尝试在IE activeX控件方面考虑这个问题,所以我可能错了。

话虽如此:

如果插入的代码使用的是字体而不是span,那么我认为它不是CKEditor,而是Webkit --它正在插入该代码。

您可以尝试加载一个页面,而不是一个CKEditor实例,它只有一个内容可编辑的div,然后执行相同的测试,以验证它是否在webkit中完成:

代码语言:javascript
复制
<div contentEditable=true>this is editable, select some text and open the nscolorpanel</div>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12543320

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档