cancelOperation не вызывается в подклассе NSView - PullRequest
4 голосов
/ 25 февраля 2012

cancelOperation: не вызывается в моем подклассе NSView, когда я нажимаю Esc.

Я проверил, и ключ Esc был получен на keyDown.Кроме того, вызываются другие сообщения действий (например, moveLeft).

Представление является частью окна, показанного так:

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

Что я делаю неправильно?

Ответы [ 3 ]

0 голосов
/ 11 декабря 2014

У моего производного NSView была такая же проблема. Это было решено после внедрения acceptsFirstResponder следующим образом:

- (BOOL)acceptsFirstResponder
{
    return YES;
}
0 голосов
/ 28 февраля 2018

В моем случае у меня есть приложение с парой NSWindow с. Мне пришлось позвонить [self.window makeFirstResponder:self] в моем NSView подклассе, чтобы представление отвечало на cancelOperation:.

0 голосов
/ 25 февраля 2012

Реализуете ли вы его как cancelOperation или cancelOperation:? Там большая разница. Подпись метода должна быть:

- (void)cancelOperation:(id)sender

Это работает для меня с ванилью NSView.

...