为NSPopover配置字段编辑器

时间:2012-06-30 06:35:08

标签: osx-lion fieldeditor nspopover

可可新手在这里:我似乎首先进入所有真正神秘的东西。我想要一个NSTextField,在单击时默认选择内容,并且我可以在其中更改选择颜色。我在这个论坛上找到了足够的东西让我开始了现场编辑的奥秘。我有NSTextField子类,并且覆盖了becomeFirstResponder方法:

- (BOOL) becomeFirstResponder {
    if (!super.becomeFirstResponder) return NO;
    NSTextView * fieldEditor = (NSTextView *) [self.window fieldEditor:YES forObject:self];
    [fieldEditor performSelector:@selector(selectAll:) withObject:fieldEditor afterDelay:0];
    [fieldEditor setSelectedTextAttributes:selectionColor];
    return YES; }

其中selectionColor是一个单项NSDictionary,其NSColor对象键入NSBackgroundColorAttributeName。这适用于窗口和面板上的文本字段,但对于NSPopover视图中的字段完全不起作用。实际上,它使文本选择变得不可能。仍然可以单击该字段并键入,但将光标拖动到文本以选择它失败。我只能得出结论,我错误地配置了字段编辑器。我是否正确引用它?

1 个答案:

答案 0 :(得分:0)

我希望我在回答我自己的问题时遵循stackOverflow协议。简短的回答是,显然,我发布的代码非常适合NSPopovers。我认为它不起作用的可能原因是我调用selectionColor的NSDictionary对象没有被正确初始化。我在这里有一个Emily Litella的时刻:“哦......没关系!”现在我唯一的问题是,我花了很多时间来追踪这个问题。