Как отобразить NSPanel / NSWindow на стороне моего приложения? - PullRequest
3 голосов
/ 29 декабря 2010

Так что в принципе у меня уже есть приложение, построенное.И я хотел бы создать NSPanel или NSWindow, которые будут отображаться справа от моего приложения при нажатии кнопки.И затем он автоматически сворачивается при повторном нажатии кнопки.

Я случайно гуглил, но чувствую, что не ищу нужные вещи.

В идеале он будет работать ТОЧНОкак [NSApp beginSheet], за исключением того, что оно не будет управлять приложением, это будет просто другое окно справа, с которым пользователь может взаимодействовать.

Как я могу начать с этим?

Спасибо!

Ответы [ 2 ]

5 голосов
/ 02 августа 2013

3 года спустя.

  • Перетащите курсор из окна / комбо из библиотеки. Который добавит одно из: A) Окно. B) Вид ящика C) Контроллер ящика
  • Перетащите новую D) кнопку раскрытия треугольника в главное окно
  • Свяжите C) Контроллер ящика "toggle:" (Полученные действия) к D) Кнопка треугольника раскрытия (Отправить действия)

Если вы хотите добавить ящик в существующее окно.

  • Отсоедините окно A) от C) выхода «parentWindow» контроллера в Connections | Outlets.
  • Убей это а) Окно
  • Свяжите свое Окно с C) этим выходом «parentWindow».

Бинго. Кнопка раскрытия откроет / закроет ящик

Sidenote:

Концепция Drawer вступает в противоречие с интерфейсом iPhone / iPad UI / UX, поскольку нет никаких сторонних возможностей для чего-то, что можно было бы выдвинуть. Ящики классные на мой взгляд. И убийцу легко добавить. И идеально подходит к окну.

3 голосов
/ 30 декабря 2010

Звучит так, будто вы хотите ящик (NSDrawer). Ящики перестали нравиться большинству дизайнеров приложений, но все еще являются официальной и поддерживаемой частью Cocoa для Mac OSX. Вы можете использовать ящик, чтобы скрыть группу элементов управления, которые вы не хотите постоянно загромождать в главном окне.

Поиск "Drawer" в Xcode и под заголовками вы увидите руководство по Drawers и образец кода DrawerMadness. Вы можете открыть кнопку и закрыть ящик с очень небольшим кодом.

Хорошее про / против обсуждение использования выдвижных ящиков

Более общим решением является дочернее окно. Это просто совершенно отдельное окно (возможно, без заголовка), которое прикреплено к вашему документу или другому окну (я предполагаю, что «право моего приложения» в вашем вопросе означает «право моего окна»). См. Документацию по NSWindow addChildWindow: упорядочено: дочернее окно останется прикрепленным к родительскому окну, даже если оно перетаскивается. Но дочерние окна гораздо больше работают, чем ящики.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...