cancelOperation не вызывается в подклассе NSView
cancelOperation:
меня не зовут NSView
подкласс, когда я нажимаю Esc.
Я проверил и ключ Esc получен на keyDown
, Кроме того, другие сообщения действий (такие как moveLeft
) называются.
Представление является частью окна, показанного так:
[self.window addChildWindow:wc.window ordered:NSWindowAbove];
[wc.window makeKeyAndOrderFront:self];
Что я делаю неправильно?
3 ответа
В моем случае у меня есть приложение с парой NSWindow
s. Мне пришлось позвонить [self.window makeFirstResponder:self]
в моем NSView
подкласс, чтобы представление отвечало на cancelOperation:
,
Мой производный NSView
была такая же проблема. Это было решено после реализации acceptsFirstResponder
следующее:
- (BOOL)acceptsFirstResponder
{
return YES;
}
Вы реализуете это как cancelOperation
или же cancelOperation:
? Там большая разница. Подпись метода должна быть:
- (void)cancelOperation:(id)sender
Это работает для меня с ванилью NSView
,