При написании приложений Какао я делаю большую часть макета пользовательского интерфейса программно. Например:
NSRect popUpFrame = NSMakeRect(10, 10, 100, kDefaultPopUpButtonHeight);
NSPopUpButton * popUp = [[NSPopUpButton alloc] initWithFrame:popUpFrame];
//...
Мой вопрос об этой kDefaultPopUpButtonHeight
константе. В настоящее время я сохраняю исходный файл, полный таких констант, и вручную добавляю нужные размеры. Я могу определить правильные размеры, поместив новый элемент управления в пустое представление в Интерфейсном Разработчике, а затем проверив его свойства, чтобы увидеть, какой размер дает ему IB.
Должен быть лучший способ. Можно ли получить доступ к этим значениям во время выполнения? В идеале, я ожидал бы, что у каждого NSControl
будет метод класса что-то вроде: +(NSSize)defaultSize
или для элементов управления типа NSButton
, которые имеют разные размеры по умолчанию в зависимости от используемого стиля кнопки, что-то вроде +(NSSize)defaultSizeForButtonStyle:(NSButtonStyle)buttonStyle
.
Руководство Apple по интерфейсу пользователя содержит информацию о компоновке элемента управления и интервале между элементами управления, но ничего не говорит о правильных размерах для отдельных элементов управления.