以编程方式查找Dock的位置?

时间:2011-10-10 18:52:53

标签: objective-c macos cocoa dock

代码中是否有办法查明Mac上的Dock是否位于用户显示器的底部,左侧或右侧?

3 个答案:

答案 0 :(得分:6)

NSScreenvisibleFrame方法,它会返回一个不包含停靠栏和菜单栏当前占用区域的矩形。您可以将此rect与全屏rect(- (NSRect) [NSScreen* frame])进行比较,并确定停靠位置。

答案 1 :(得分:3)

这可能更简单......

defaults read com.apple.dock "orientation"

  

您还可以找到.. autohide(即1),large size(即“65.48148”)和magnification(即1)等。

答案 2 :(得分:1)

prefs面板

使用的

private discovered API

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);