Какао - выкатываете панель из окна? - PullRequest
2 голосов
/ 09 марта 2011

Я надеюсь, что это очень просто.Но в целом я бы хотел, чтобы мое приложение могло «развернуть» панель / представление справа от окна моего приложения.

Я достиг чего-то похожего (перекатывая панель поверх существующейокно), выполнив:

[NSApp beginSheet:myPanel
   modalForWindow: [self.view window]
    modalDelegate: self
   didEndSelector: @selector(sheetDidEnd: returnCode: contextInfo:)
      contextInfo: nil];

Но как сделать так, чтобы панель выкатывалась сбоку моего окна?Я в основном хочу иметь боковую панель, которая, если пользователь нажимает кнопку, будет отображаться + отображать больше информации.Это имеет смысл?

Спасибо!

Ответы [ 2 ]

8 голосов
/ 09 марта 2011

Пара вещей (Правка: ладно, три):

Во-первых, другие предложили NSDrawer, но пользователи в лучшем случае были не в восторге от идеи выдвижных ящиков много лет назад. В эти дни ящики почти повсеместно презираются. Попробуйте использовать NSSplitView (с тонкой 1-пиксельной рамкой) и использовать его -animator для анимации открытия / закрытия.

Во-вторых, если вы специально хотите, чтобы эффект «листа» (лист, казалось, выходил из щели в окне или даже в виде), вам нужен целый мир «забавных» настроек, чтобы воспроизвести этот эффект. , поскольку нет общедоступного API, который бы указывал ему выходить из окна / вида по вертикали (а не по горизонтали).

В-третьих, я бы сказал, что настройка стандартного поведения пользовательского интерфейса таким образом (пример листа в моем втором пункте) почти никогда не подходит. Существует множество причин для предоставления пользовательского интерфейса, когда существующий не делает то, что вам нужно , чтобы сделать, но внесение такого очевидного изменения в стандартное поведение, к черту его, обычно вызывает недовольство со стороны Mac пользователи. Это одна из основных претензий к сторонним приложениям Windows (отсутствие согласованности в их интерфейсе). Так что не делайте вертикальные листы ради ваших пользователей. : -)

0 голосов
/ 09 марта 2011

Если вы хотите, чтобы ваша панель выкатилась из окна - вы должны использовать NSDrawer. В противном случае - вам придется написать что-то нестандартное, и я не думаю, что это будет хороший UX.

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