Захват событий окна в NSDocument - PullRequest
3 голосов
/ 02 ноября 2010

У меня есть основанное на документе приложение Какао с TextView, и я хотел бы захватывать щелчки по нему, поэтому я пытаюсь перехватить события Window, такие как mouseDown, mouseUp и т. Д., А затем связать их с моим TextView.

Я попробовал две вещи:

1.) Я сделал TextView первоначальным первым респондентом для окна моего документа и переопределил событие mouseDown для моего класса документов, но оно не выполняется.

2.) Я вложил в подкласс NSWindow и переопределил mouseDown, и установил в этом подклассе класс моего окна в моем документе xib.Это событие также не произошло.

Я заметил, что делегат Window уже настроен на владельца моего файла, который является моим подклассом NSDocument.Почему события не запускаются в моем NSDocument, если мой подкласс документа является делегатом для моего окна?

1 Ответ

2 голосов
/ 02 ноября 2010

Непонятно, почему вы ожидаете, что NSDocument будет обрабатывать -mouseDown: события для представления в окне. NSDocument не отвечает на -mouseDown :. NSTextView (как следует из его названия) является подклассом NSView, который является подклассом NSResponder, который отвечает на -mouseDown:.

Вам следует прочитать Руководство по обработке событий с какао .

Также неясно, почему вы хотите обработать события и передать их самим представлениям. Какао позаботится обо всем этом для вас и, вероятно, сделает это намного лучше. Вам следует уточнить вашу общую цель (например, «почему вы хотите перехватывать клики и направлять их на просмотр самостоятельно?») - может быть, есть гораздо лучший (и, вероятно, более простой) способ ее достижения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...