以编程方式修改osx中的屏幕边界

时间:2013-08-24 10:30:39

标签: objective-c macos cocoa applescript

我有一个替换原始osx桌面的应用程序。我需要在我的桌面替换中实现一个信息栏,以便它始终可见(有点像mac菜单栏)。所以我想知道......

  • 有没有办法以某种方式将mac的菜单栏向下移动,可能像20像素?
  • 有没有办法以某种方式将mac的Dock移动几个像素?

这样我就可以在桌面的顶部或底部实现信息。我不认为这是可能的,但如果有人知道任何解决方案(苹果或某些应用程序或最好是客观c ,我非常希望听到它。

由于

2 个答案:

答案 0 :(得分:0)

我不知道移动Dock或菜单栏的简单方法。但是,您是否可以将应用程序设置为始终保持在前面的浮动窗口?在Cocoa中很容易做到这样的一行:

myWindow.level = NSFloatingWindowLevel;

(假设您已经创建了名为NSWindow *的{​​{1}}。)

您可以将该窗口固定在屏幕的左侧或右侧,而不是移动其他UI元素吗? (假设您的Dock位于底部 - 尽管请注意,如果您将应用程序分发给其他人,则可能并非总是......例如,我的左侧是。)

也许我错过了一些关于你想做什么的事情,但对我而言,将你自己的信息栏固定在其他地方似乎要容易一些,而不是试图移动核心的Mac UI元素。

答案 1 :(得分:0)

你所想到的是像modal window这样的东西,它始终保持最前面(直到它处理完毕)。但是,模态窗口(如密码提示)是令人讨厌的,可能不是你想要的。

如果你想要一个“类似菜单栏”的应用程序,为什么要重新发明轮子?为什么不做一个 Menu Bar Application 。菜单栏应用程序在菜单栏中运行,可以在那里显示信息,如时钟,电池百分比,CPU使用率,wifi等,似乎正是您所需要的。点击后,他们可以在下拉列表中为用户提供无数的选项和更多信息。