Главная » iPhone, Objective-C, Программирование для iOS и MacOS » Редактирование файла BNRDocument.xib- настольное приложение Сосоа

0

Перетащите экземпляр NSТаblеViеw из библиотеки объектов в объект окна. Измените размеры таблицы так, чтобы она закрывала большую часть окна, но оставьте место внизу для кнопки.

Рис. 28.4. Добавление NSТаblеViеw

Обратите внимание: края объекта автоматически выравниваются по направляющим при приближении к краям окна или других объектов. Эти направляющие обеспечивают выравнивание объектов представлений в соответствии с рекомендациями «Human Interface Guidelines» (HIG) фирмы Apple – правилами, которые должен соблюдать каждый разработчик при проектировании пользовательских интерфейсов для Мас. Также существуют документы HIG для iPhone и iPad. Все документы HIG приведены в документации разработчика.

Теперь мы зададим некоторые атрибуты табличного представления в инспекторе  атрибутов.  Обычно  для  этого  разработчик  щелкает  на  объекте  на

макетной сетке, а контекст инспектора изменяется для отображения атрибутов выбранного объекта. добраться до атрибутов экземпляра NSTableView сложнее. Объект табличного представления, перетащенный в  окно, в действительности представляет собой набор вложенных объектов: NSScrollView, NSТаblеViеw и один или несколько экземпляров NSTahleColumn. Чтобы добраться до нужного объекта этого набора, удерживайте нажатыми клавиши Control и Shift при щелчке на табличном представлении. Под курсором появляется список объектов, из которого можно выбрать нужный вам. Выберите объект NSTableView.

В инспекторе атрибутов настройте табличное представление так, чтобы оно состояло из одного столбца. Затем вернитесь в редактор, выберите заголовок табличного представления и растяните единственный столбец до полной ширины табличного  представления.

Рис. 28.5. Выбор представления из стопки

Мы аккуратно расставили представления по местам, но что произойдет, когда пользователь изменит размер окна приложения? Необходимо позаботиться о том, чтобы табличное представление изменяло размеры в окне. Вообще говоря, изменяться вместе с окном будет прокручиваемое представление, которое содержит табличное представление. Щелкните на табличном представлении с нажатыми клавишами Control и Shift, выберите NSScrollView из списка. В верхней части панели инспектора щелкните на кнопке   чтобы открыть инспектор размеров. Найдите в нем раздел Autosizing.

Рис 28.6 Изменение ширины столбца

Этот раздел содержит маску автоматического изменения размеров – элемент управления, позволяющий настроить реакцию выбранного объекта представления на измерение размеров суперпредставления. Представления, как и классы, образуют иерархию, поэтому каждое представление может иметь суперпредставления и субпредставления. Суперпредставлением NSScrоllView является экземпляр NSWindow.

Маска автоматического изменения размеров состоит из четырех якорей в виде буквы I и двух пружин в виде двусторонних стрелок. Выбор одной из пружин позволяет выбранному объекту представления расширяться в заданном направлении при расширении суперпредставления. Выбор якоря привязывает выбранный объект представления к заданному краю его суперпредставления. К счастью, справа от маски автоматического изменения размеров отображается удобная анимация, по которой можно составить представление о том, как будет работать выбранный объект представления с заданной комбинацией якорей и пружин.

Выберите в маске автоматического изменения размеров все четыре якоря и обе пружины. Тем самым вы привязываете все четыре стороны прокручиваемого представления к соответствующим краям окна и позволяете прокручиваемому представлению (и содержащемуся в нем табличному представлению) расширяться по горизонтали и вертикали при изменении размеров окна.

Рис. 28.7. Настройка маски автоматического изменения размеров

Теперь перейдем от табличного представления к кнопке. Вернитесь в библиотеку объектов. Найдите экземпляр NSButton и перетащите его в объект окна. Вы можете выбрать любой из стилей кнопок, представленных в библиотеке; классический вариант – прямоугольная кнопка c закругленными краями (Rounded Rect Button). После того как кнопка будет перетащена в окно, вы можете изменить надпись на кнопке; для этого сделайте двойной щелчок на тексте кнопки и введите нужный текст. В нашем приложении следует ввести текст Insert.

Наконец, в инспекторе размеров задайте маску автоматического изменения размеров так, чтобы кнопка была привязана к левому нижнему углу окна и сохраняла свои текущие размеры.

Рис. 28.8. Маска автоматического изменения размеров для кнопки Inseгt

Итак, мы создали два объекта представлений, необходимых для приложения TahDoodle: NSТаblеViеw и NSButton, а также настроили параметры этих объектов. Для табличного представления было задано количество столбцов, а для кнопки – текст надписи. Мы также позаботились об их правильном изменении размеров и позиционировании при изменении размеров окна.

Когда  вы  делаете  двойной  щелчок  на  NSButton и  вводите  текст  надписи,

результат эквивалентен тому, который достигался в предыдущей главе добавлением следующей строки кода:

[insertButton setTitle:@"Insert"

forState:UIControlStateNormal];

Итак, в каких случаях следует использовать Intecface Builder, а когда лучше создавать представления на программном уровне? В простых случаях подойдет любое решение. Мы могли построить интерфейс iTahDoodle с использованием XIB. Однако в общем случае чем сложнее интерфейс, тем больше причин для использования Interface Builder.

Рис. 28.9. BNRDocument.xib с настроенными представлениями

Источник: Аарон Хилегас, «Objective-C. Программирование для iOS и MacOS», 2012 г.

По теме:

  • Комментарии