Mac的窗口对接建议

Sha*_*ane 11 macos cocoa docking

我在编写工具时来自Windows编程背景,但过去一年中一直在使用Carbon和Cocoa进行编程.我承认,我已经向Mac介绍了自己,从UI编程中隐藏起来.我一直在视图中使用我的OpenGL代码,然后像往常一样使用与平台无关的OpenGL C++代码保持在我的舒适区域.

但是,现在我想开始将一个更复杂的应用程序移植到Mac OS.

通常我使用标准的Visual Studio可停靠MDI方法,这种方法非常出色,但非常像Windows.从主要使用Mac开始一段时间,我不倾向于看到用于Mac UI的这种方法.不幸的是,即使Xcode也不支持拖放/停靠视图的想法.我看到有拆分面板的停靠视图,但这就是它.

我见过的最接近Visual Studio方法的是Photoshop CS4,这非常好.

那么对此有何普遍共识?有没有更像Mac的方式来实现我没见过的同样的事情?如果没有,我很高兴自己在Cocoa中编写一个窗口管理器,这样我就可以最终深入了解一个看起来很棒的API.

注意,我不想使用QT或任何其他跨平台库.重点是我想让Mac应用程序看起来像Mac应用程序,让Windows应用程序看起来像Windows应用程序.我总是发现跨平台库往往会失去这种效果,当我看到一个原生的Mac UI,花哨的Cocoa过渡和动画时,我总是微笑.这也是我学习Cocoa的好借口.

话虽这么说,如果有一个开源Cocoa库来做这件事,我很想知道它!我很想看看其他人是如何实现这一目标的,并且有助于平滑Cocoa的学习曲线.

干杯,

巴蒂尔

更新:我忘了提到一个关键点.我支持插件,它可以有自己的UI来显示各种插件特定信息.我不知道将加载哪些插件,如果我不支持对接,我不知道他们的UI将在哪里生活.我很想听听别人对此的看法,具体来说:如果UI无法改变,我如何支持插件视图架构?我在哪里放置插件视图?

Ken*_*agh 10

来自Windows背景,你觉得需要有对接窗口,但它对应用程序真的很重要吗?Apple的理念(在我看来)是设计师比用户更了解事物的外观和工作方式.例如,iTunes是一个非常复杂的应用程序,但它不会让你改变UI,改变皮肤等,因为Apple希望保持一致.它们提供完整视图,迷你播放器和一些不同的查看选项,但它们不允许您将源列表拉到单独的窗口中,或将其停靠在其他位置.他们认为它应该在左边,所以它留在......

你说你"想让Mac应用程序看起来像Mac应用程序",正如你所指出的,Mac应用程序往往没有对接窗口.因此,实现自己的对接窗口可能是朝错误方向迈出的一步;)

  • 完全同意这一点.补充:Adobe的最新套件是Mac OS X平台上这个想法有多糟糕的一个典型例子.:-) (4认同)
  • 对于具有UI的Apple支持的插件架构,请查看音频单元的处理方式.在/ Developer/Applications/Audio /中查看AULab.我不会将AULab称为优秀的UI设计示例,但值得关注.他们在那里做的是打开一个新的浮动窗口(NSPanel)来显示每个音频单元的UI.窗口高度根据需要调整大小.Interface Builder与检查器选项卡执行类似操作,允许更改高度,但限制显示每个类的唯一UI的宽度. (2认同)