代码中是否有办法查明Mac上的Dock是否位于用户显示器的底部,左侧或右侧?
答案 0 :(得分:6)
NSScreen
有visibleFrame
方法,它会返回一个不包含停靠栏和菜单栏当前占用区域的矩形。您可以将此rect与全屏rect(- (NSRect) [NSScreen* frame]
)进行比较,并确定停靠位置。
答案 1 :(得分:3)
这可能更简单......
defaults read com.apple.dock "orientation"
底
您还可以找到.. autohide
(即1),large size
(即“65.48148”)和magnification
(即1)等。
答案 2 :(得分:1)
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);