Найти местоположение дока программно? - PullRequest
4 голосов
/ 10 октября 2011

Есть ли в коде способ узнать, находится ли док-станция Mac на нижней, левой или правой стороне монитора пользователя?

Ответы [ 3 ]

6 голосов
/ 10 октября 2011

NSScreen имеет метод visibleFrame, который возвращает прямоугольник, который не включает область, занимаемую в данный момент доком и строкой меню. Вы можете сравнить этот прямоугольник с полноэкранным прямоугольником (- (NSRect) [NSScreen* frame]) и определить местоположение дока.

3 голосов
/ 21 января 2012

Это, вероятно, проще ...

defaults read com.apple.dock "orientation"

внизу

Вы также можете узнать .. autohide (т.е. 1)large size (т. Е. «65,48148») и magnification (т. Е. 1) и т. Д.

1 голос
/ 05 октября 2013

частный обнаруженный API используется панелью prefs

typedef enum {
  kCoreDockOrientationTop = 1,
  kCoreDockOrientationBottom = 2,
  kCoreDockOrientationLeft = 3,
  kCoreDockOrientationRight = 4
} CoreDockOrientation;

extern void CoreDockGetOrientationAndPinning(CoreDockOrientation *outOrientation, CoreDockPinning *outPinning);
// If you only want to set one, use 0 for the other.
extern void CoreDockSetOrientationAndPinning(CoreDockOrientation orientation, CoreDockPinning pinning);
...