Пункты меню строки меню отключаются по истечении определенного периода времени - PullRequest
3 голосов
/ 29 февраля 2012

У меня есть приложение, которое находится в строке меню Mac с пунктами меню для управления приложением.После того, как приложение будет работать некоторое время без взаимодействия, все пункты меню будут отключены.Единственный способ «исправить» меню - это снова запустить приложение (пока оно уже запущено и не выходит из приложения), и пункты меню снова станут активными.

Это причина моей проблемы, потому что яобъявили IBOutlet для этого меню слабым и оно должно быть сильным?Или есть другая причина, по которой это может произойти?

Ответы [ 3 ]

1 голос
/ 08 марта 2012

NSMenuS выполняет автоматическую проверку NSMenuItems. Если какая-либо из целей элемента равна нулю, или если какая-либо цель не отвечает на предполагаемое сообщение, она автоматически отключается. Чтобы переопределить это поведение, введите validateMenuItem: в свой подкласс NSMenu. Однако будьте осторожны, как обычно, когда NSMenuItems отключены, это часто означает, что цель сообщения была освобождена или больше не доступна.

1 голос
/ 11 марта 2012

Если вы используете ARC в Mac OS X, тогда вы ДОЛЖНЫ использовать ссылку strong при создании выходов для объектов верхнего уровня в кончике. Если вы этого не сделаете, объекты будут освобождены.

На iOS все по-другому из-за способа работы UIViewController, и вы должны использовать ссылку weak.

1 голос
/ 06 марта 2012

Я являюсь автором подобного приложения, которое находится в строке меню, и я смог держать его в работе в течение долгих отрезков, даже не видя проблему, которую вы описываете. Хотя я не знаю точно, что является причиной вашей проблемы, я могу сказать, что я использую сильную ссылку IBOutlet для моего NSMenu, которая, кажется, работает отлично.

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