可可 - 在窗户旁边滚动一块面板?

时间:2011-03-09 16:29:22

标签: objective-c cocoa xcode macos

我希望这很简单。但基本上我喜欢我的应用程序能够在我的应用程序窗口右侧“推出”一个Panel / View。

我通过以下方式实现了类似的功能(在现有窗口上滚动面板):

[NSApp beginSheet:myPanel
   modalForWindow: [self.view window]
    modalDelegate: self
   didEndSelector: @selector(sheetDidEnd: returnCode: contextInfo:)
      contextInfo: nil];

但是如何在窗口侧面展开面板?我基本上想要一个侧边栏,如果用户点击按钮,它将推出+显示更多信息。这有意义吗?

谢谢!

2 个答案:

答案 0 :(得分:8)

一些事情(编辑:好的,三个):

首先,其他人建议使用NSDrawer,但几年前用户对抽屉的想法充其量不冷不热。这些天抽屉几乎被普遍鄙视。考虑使用NSSplitView(具有薄的1像素边框)并使用其-animator为打开/关闭设置动画。

其次,如果您特别想要“工作表”效果(一张表格看起来是从窗口的一个狭缝中出来,甚至是一个视图),那么您将获得一个定制的“乐趣”世界来重现这种效果,因为肯定没有公共API告诉它垂直出来(相对于水平)窗口/视图。

第三,我认为以这种方式定制标准的UI行为(我的第二点中的表单示例)几乎不可能。有很多理由提供自定义用户界面,而现有的用户不需要需要做什么,但对于它的标准行为做出如此明显的改变往往是不赞成的Mac用户。这是他们对第三方Windows应用程序的主要抱怨之一(用户界面没有一致性)。所以不要为了用户的缘故做垂直板材。 : - )

答案 1 :(得分:0)

如果您希望面板从窗口滚出 - 您应该使用NSDrawer。否则 - 你将不得不编写自定义的代码,我认为它不会是一个很好的用户体验。