在代码中是否有一种方法可以找出Mac上的Dock栏位于用户显示器的底部、左侧或右侧?
在代码中是否有一种方法可以找出Mac上的Dock栏位于用户显示器的底部、左侧或右侧?
NSScreen
有visibleFrame
方法,返回一个矩形,不包括当前被dock和菜单栏占据的区域。您可以将此矩形与全屏矩形(- (NSRect) [NSScreen* frame]
)进行比较,并确定dock的位置。
这可能更简单...
defaults read com.apple.dock "orientation"
底部
你还可以找到... autohide
(即1),large size
(即“65.48148”)和magnification
(即1)等。
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSString *dockParameterYouWant = [[defaults persistentDomainForName:@"com.apple.dock"] valueForKey:@"thatParameterYouWant"];
意为:
使用NSUserDefaults类创建一个名为defaults的实例,然后从其持久域中获取一个键为"thatParameterYouWant"的参数字符串,该参数属于"com.apple.dock"应用程序的域。 - Alex Gray私有发现的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);