在NSView子类中没有调用cancelOperation
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在NSView子类中没有调用cancelOperation相关的知识,希望对你有一定的参考价值。
当我按下Esc时,cancelOperation:
在我的骨架NSView
子类中没有被调用。
我检查了并且在keyDown
上收到了Esc密钥。此外,还会调用其他操作消息(例如moveLeft
)。
该视图是如下所示的Window的一部分:
[self.window addChildWindow:wc.window ordered:NSWindowAbove];
[wc.window makeKeyAndOrderFront:self];
我究竟做错了什么?
答案
你是用cancelOperation
或cancelOperation:
实现的吗?有很大的不同。方法签名应该是:
- (void)cancelOperation:(id)sender
这适用于我与香草NSView
。
另一答案
我派生的NSView
也有同样的问题。实施acceptsFirstResponder
后如下解决:
- (BOOL)acceptsFirstResponder
{
return YES;
}
另一答案
就我而言,我有一个带有几个NSWindow
s的应用程序。我不得不在我的[self.window makeFirstResponder:self]
子类中调用NSView
以使视图响应cancelOperation:
。
以上是关于在NSView子类中没有调用cancelOperation的主要内容,如果未能解决你的问题,请参考以下文章
使用来自 XIB 的自定义 NSView/UIView 子类?