Вы объявили myStatusMenu
как розетку, но никогда не загружали перо (или что-то ему назначали). Розетка не может получить объекты из ниоткуда; розетка устанавливается только тогда, когда вы загружаете перо, к которому подключено что-либо (или назначаете что-то переменной, как будто это не розетка).
Это можно доказать, добавив строку к buildStatusItem
, в которой записывается значение переменной экземпляра myStatusMenu
. Я ожидаю, что это будет nil
.
Что вам нужно сделать, это:
* * 1010
Создать перо для содержания меню элемента состояния.
Установить класс Владельца файла на
KBStatusMenu
.
В KBStatusMenu внедрите
init
, чтобы загрузить только что созданное перо.
Затем, когда вы достигнете buildStatusItem
, при загрузке пера будет установлена розетка, и у вас будет меню для предоставления вашего статуса.
Я бы рекомендовал создать только один KBStatusMenu
экземпляр. В этом случае я рекомендую использовать синглтон: init
должен проверить, был ли уже установлен gInstance
, и, если это так, вернуть его; только если он не должен инициализироваться и возвращать self
.