Иногда это просто не работает, потому что Какао не нравится ваш заголовок :-p Это происходит, например, когда выбранный вами заголовок является локализованным именем приложения, но он хочет отобразить нелокализованное имя приложения. Небольшая хитрость может помочь ...
NSMenu *menu = [[[NSApp mainMenu] itemAtIndex:0] submenu];
NSString *title = @"My app name";
// Append some invisible character to title :)
title = [title stringByAppendingString:@"\x1b"];
[menu setTitle:title];
Да, это безумие, но этот дополнительный персонаж в конце все изменил. (Вы также можете добавить только пробел, но затем пункт меню увеличивается, что, вероятно, не то, что вы хотите.)
Протестировано на OS X 10.9.5.
Другое дело:
Вы должны сделать все это ПОСЛЕ того, как вы показали окно. В противном случае это просто не работает. Более того, если вы выполните эту процедуру при запуске приложения, а затем, когда появится окно, выполните это снова, это может не сработать.