Разработчики из компании Beezwax в своем блоге опубликовали интересную технику создания собственных чек-боксов в FileMaker на основе появившемся в 14-й версии FileMaker инструменте Button Bars. Со статьей целиком можно ознакомиться здесь (английский), мы же ограничимся описанием основных принципов. Как все гениальное, они довольно просты.
Создавать чек-боксы в FileMaker легко и приятно, достаточно задать соотвествующий формат поля и указать список возможных значений. Однако у стандартного способа, который нам предоставляет FileMaker есть и ряд недостатков. Чек-бокс в FileMaker выглядит всегда как квадратик в который прославляется символ «крестик». Альтернатива — можно использовать символ «галочки», что собственно и делает чек-бокс чек-боксом, однако эта возможность появилась только с 13-й версии. Разработчик не многое может изменить в том как будет выглядеть чек-бокс, по сути только размер и цвет.
Кроме того, часто в качестве списка значений для чек-бокса, разработчик использует список с одним единственным значением «1», для того чтобы в базу попадало значение либо 1 либо «пусто». А подпись к полю делается как обычный лейбл. Из этого подхода вытекают еще два недостатка:
- Для того чтобы включить/выключить чек-бокс, пользователь должен кликать на сам «квадратик», клик на лейбл ни к чему не приведет.
- Неаккуратное форматирование, а также некоторое отличие отображения лайаутов (в основном из-за небольших различий в шрифтах) на разных платформах (Win/Mac/iOS/Web) может привести к тому, что символ «1» будет виден пользователю.
Уйти от этих недостатков и создать собственные кастомизированные чек-боксы можно по разному. Один из вариантов использовать Button Bars и возможность «скрытия» (свойство Hide object when) объектов. Техника работает так:
- Сам чек-бокс представляет из себя Button Bars из двух кнопок, где одна кнопка отвечает за «включенный» чек-бокс, а другая за «выключенный».
- Вид самого чек-бокса определяется изображениями, которые подставляются в соотвествующие кнопки Button Bars. Это могут быть как png, так и svg файлы. Очевидно, что раз мы используем изображения, то вид чек-бокса может быть любой и ограничен только фантазией и чувством стили разработчика.
- Включение/выключение чек-бокса осуществляется с помощью скрипта, который «висит» на обеих кнопках и инвертирует значение поля за которое отвечает чек-бокс.
- Для кнопок настроено свойство Hide object when. «Включенная» кнопка скрывается, когда значение поля пусто, а «выключенная», наоборот, когда поле не пустое.
Хотя в режиме редактирования лайоута мы видим наш чек-бокс как Button Bars состоящий из двух кнопок, свойство Hide object when настроено так, что на лайоуте всегда отображается только одна из двух кнопок и поскольку это Button Bars, то когда левая кнопка скрывается, правая кнопка смещается на ее место. Таким образом пользователь видит только включение/выключение чек-бокса.
Скачать демонстрационный файл можно здесь. В файле присутствуют различные варианты отображения чек-боксов, которые можно скопировать в свои проекты. Спасибо авторам техники.
техника-то известна. вот за коллекцию готовых svg — авторам спасибо
ну, кому-то известна, кому-то нет. Мы же для всех пишем, не только для самых опытных.
согласен.
тогда следует подчеркнуть, что этот способ подходит не только для чек-боксов, но для всех случаев, когда видимая на экране кнопка должна «видоизменяться» в зависимости от условий. При этом вариантов отображения кнопки может быть сколько угодно. У каждой кнопки в наборе может быть своя собственная уникальная иконка, расцветка, команда. Главное — предусмотреть в настройках, чтобы отображалась только одна из кнопок.
Андрей, не хотите статью написать? У нас авторов не хватает.
Я сейчас пишу курсовой проект и диплом по файлмейкеру. Скоро будет много няшек. Ждите
с нетерпением 🙂