NSMenu с 2 стандартными + переменное число NSMenuItems - PullRequest
0 голосов
/ 25 марта 2012

У меня есть NSMenu с 2 пунктами по умолчанию (вверху).

Тогда будет заполнено остальное меню.

Я хочу «сохранить» состояние исходного меню (с двумя пунктами в нем) и добавить элементы в это (оригинальное) меню; а не просто продолжать добавлять и добавлять.

Итак, если мне нужно добавить другие элементы, они должны быть добавлены в начальное меню.

Пример:

  • Меню В начале: A B |
  • Меню после того, как пользователь сделает это: A B | C D E
  • Меню после того, как пользователь это сделает: A B | G H I J K

Как мне это сделать? (Я попытался «сохранить» исходное меню, а затем «скопировать» его в текущее меню, чтобы я мог добавить элементы поверх него, но это не сработало ...: -S)


[DOC_UI setCurrentMenu:[[DOC_UI originalMenu] copy]];

// I'm adding the items here

for (NSMenuItem* mi in [[DOC_UI currentMenu] itemArray])
      NSLog(@"orig :: mi : %@",[mi title]);

/* The weird thing is that the items ARE NSlogged, but the change is NOT reflected. */
/* (When I was just adding to the existing items, the items did show up...) */

1 Ответ

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

Если вы говорите о пунктах меню в меню, вы можете удалить все, кроме первых 2 элементов в цикле, когда хотите вернуться к исходному меню.Если у вас есть меню с 2 пунктами по умолчанию, которые называются userMenu, просто сделайте это:

-(void)removeMenuItems {
for (NSInteger i=self.userMenu.itemArray.count - 1; i>1; i--) {
    [self.userMenu removeItemAtIndex:i];
}

}

...