Установить возможные заголовки при использовании Interface Builder? - PullRequest
0 голосов
/ 10 февраля 2011

Я пытаюсь использовать свойство UIBarButtonItem возможное название для установки размера кнопки, моя проблема заключается в том, что мои UINavigationBar и UIBarButtons создаются в Интерфейсном Разработчике (файл XIB), и, похоже, необходимо установить возможные заголовки, прежде чем UIBarButtonItems будут добавленыthe UINavigationBar.

// FROM viewDidLoad
[self setNavBarItem:[[navBar items] objectAtIndex:0]];
[self setButtonStart:[navBarItem leftBarButtonItem]];

NSSet *buttonSizes = [NSSet setWithObjects:@"IT",@"FLIP",@"WARPCOIL", nil];
[[self buttonStart] setPossibleTitles:buttonSizes];

Кто-нибудь знает, можете ли вы сделать это, если UINavigationBar и UIBarButtonItem созданы в IB, или мне нужно указать представление программно через loadView, чтобы получить более точный контроль над элементами?

EDIT_001:

Одним из решений может быть добавление UINavigationBar в IB (с IBOutlet для подключения его к XCode), а затем создание и добавление UIButtonBarItems программно в XCode.Таким образом, я могу установить возможные заголовки, прежде чем добавить кнопки в UINavigationBar.

1 Ответ

3 голосов
/ 10 февраля 2011

UIBarButtonItem изменяет ширину на основе заголовка, когда свойство ширины устанавливается в ноль в IB.

Чтобы получить фиксированную ширину, установите для свойства заголовка самое длинное слово (WARPCOIL в вашем случае), затем установитесвойство ширины, так что слово подходит.

Когда вы изменяете заголовок в коде, кнопка останется на этой фиксированной ширине.

...