2013-08-24 5 views
1

У меня есть приложение, которое заменяет исходный рабочий стол osx. Мне нужно реализовать информационную панель в моей настольной замене, чтобы она всегда была видимой (вроде как панель меню Mac). Так что мне было интересно ...Изменение границ экрана в osx программно

  • есть способ каким-то образом переместить панель меню Mac, возможно, примерно 20 пикселей?
  • есть способ каким-то образом переместить док-станцию ​​Mac на несколько пикселей?

Таким образом, я мог бы просто реализовать информацию в верхней или нижней части рабочего стола. Я не думаю, что это возможно, хотя, но если кто-нибудь знает какого-либо решения (либо AppleScript или каким-либо приложением или предпочтительно Objective-C, я бы очень хотелось услышать об этом.

Благодаря

+0

Значит, ваше приложение будет работать над рабочим столом? Почему бы просто не скрыть документ, а затем ваше приложение заняло весь экран? Или запустить приложение в полноэкранном режиме? – scohe001

+0

@ Josh Основная идея - иметь приложение, которое может отображать информацию, которая всегда будет видна мне независимо от того, какое приложение я использую в данный момент (так же, как док и меню всегда видны). В основном, что я хочу, это дополнительное приложение, похожее на панель инструментов, которое никогда не может закрывать другие окна приложений. Надеюсь, это немного облегчит ситуацию. – Marius

+0

Взгляните на мой ответ – scohe001

ответ

0

Я не знаю, как легко перемещать док-станцию ​​или панель меню. Но не могли бы вы просто сделать свое приложение плавающим окном, которое всегда остается в передней части? Это очень легко сделать в Какао с такой линией, как:

myWindow.level = NSFloatingWindowLevel;

(Предполагая, что у вас есть NSWindow * под названием myWindow уже создан.)

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

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

+0

Мэтт, спасибо за ответ. Однако, если я привяжу свой бар в любом месте, другие интерфейсы приложений будут по-прежнему перемещаться за панель. И это будет мешать функциональности этих других приложений. Я не просто хочу привязать свой бар где-нибудь, но также сделать эту область недоступной для любого другого приложения (например, вы не можете перемещать что-либо позади панели меню или изменять размер всего за док-станцией), чтобы мой бар никогда не был включен сверху любого окна приложения. Но я не думаю, что это возможно. – Marius

+0

@Marius Да, я не уверен точно, как вы можете решить эту проблему. Я относительно новичок в Cocoa dev, поэтому у меня нет тонких ответов, но я знаю, что метод '-visibleFrame'' NSScreen' возвращает полезную область экрана, минус область Dock и панель меню. Я предполагаю, что это то, что система использует, чтобы предотвратить появление других окон и т. Д. В этих областях? Если это правильно, вы можете потенциально изучить «swizzling» метод '-visibleFrame'. Я только начинаю читать это сам, но может быть, это сработает? Или, может быть, это слишком много проблем ... – Matt

+0

Да, я читал об этом еще до того, как приступить к этому форуму;] К сожалению, вы можете читать только активную область экрана, но не устанавливать ее :( – Marius

0

Что вы думаете о чем-то вроде modal window, которое всегда будет оставаться на переднем крае (до его разрешения). Однако модальные окна (например, подсказка пароля) являются неприятными и, вероятно, не то, что вы ищете.

Если вы хотите использовать приложение «Меню в виде меню», зачем изобретать колесо? Почему бы просто не сделать Menu Bar Application. Панель меню Приложения запускаются в строке меню и могут отображать там информацию, например, ваши часы, процент батареи, использование процессора, Wi-Fi и т. Д. И, похоже, именно то, что вам нужно. При нажатии они могут предложить пользователю множество вариантов и дополнительную информацию в раскрывающемся списке.

+0

Джош, мне не нужно изобретать колесо, потому что мне не нужно приложение в виде меню. Мое приложение будет отображать множество информации, и в строке меню недостаточно свободного места в строке меню. И мне нужно, чтобы информация отображалась сразу, без прокрутки или чего-то еще. К сожалению, модальные окна тоже не то, что я ищу. Даже [NSWindow setLevel] не подходит для этой цели. – Marius

Смежные вопросы