在NSView子类中没有调用cancelOperation

时间:2012-02-25 10:42:01

标签: macos cocoa nsview keydown esc-key

当我按下Esc时,

cancelOperation:在我的简单NSView子类中没有被调用。

我检查了keyDown收到的Esc密钥。此外,还会调用其他操作消息(例如moveLeft)。

该视图是如下所示的窗口的一部分:

[self.window addChildWindow:wc.window ordered:NSWindowAbove];
[wc.window makeKeyAndOrderFront:self];

我做错了什么?

3 个答案:

答案 0 :(得分:0)

您是以cancelOperation还是cancelOperation:来实施的?有很大的不同。方法签名应为:

- (void)cancelOperation:(id)sender

这适用于我的香草NSView

答案 1 :(得分:0)

我的派生NSView有同样的问题。在实施acceptsFirstResponder之后解决了以下问题:

- (BOOL)acceptsFirstResponder
{
    return YES;
}

答案 2 :(得分:0)

在我的情况下,我有一个带有几个NSWindow的应用。我不得不打电话 我[self.window makeFirstResponder:self]子类中的NSView让视图回复cancelOperation: