2011-07-22 25 views
4

就是这样。我想要居中两个按钮。 我的工具栏看起来像这样([B]是一个按钮):我可以将NSToolbarItem放在工具栏中吗?

[B] < ----灵活空间---> [B] [B] < ----灵活的空间 - - > [SearchBar]

但是搜索栏比最左边的按钮大,所以中间的按钮不居中。我试图添加一个自定义宽度的视图,但这是由本地化搞砸了。 有没有办法让他们居中?

回答

2

尽管可能使用工具栏,但事情居中或实际上控制按钮顺序以外的布局不一定是个好主意。

编辑︰它已被引起我的注意,Mail.app确实使用Voodoo做一些非常类似于你的建议。

他们通过跟踪工具栏项目并调整工具栏中第一个灵活空间的大小来对齐工具栏。

这可能适用于某些用例,但可能很脆弱;请谨慎使用,并且请记住,如果用户可以自定义工具栏,则可能会删除灵活的空间,从而破坏您的居中。

+0

但Mail.app会这样做。他们将按钮与源列表对齐? – david

+0

@david:Mail.app使用的只能称为Voodoo。 –

+2

虽然这个问题是过时的,但它会复制与mail.app相同的行为https://github.com/jwells89/JWToolbarAdaptiveSpaceItem – Cory

10

一个非常迟来的回应,但因为我还需要做到这一点。我刚写了一个子类,它会创建一个空间中心的下一个工具栏项:

http://github.com/timothyarmes/TAAdaptiveSpaceItem

+0

正是我需要的!不幸的是,除了Xcode的默认“保留所有权利”外,我无法在您的代码中找到许可证。猜测你打算让人们能够使用它,你能否考虑将一个BSD风格的许可证文件交给回购使其正式? – DouglasHeriot

+2

是的,我需要补充一点。我将添加一个MIT许可证,以便您可以假设您可以随意使用它... – tarmes

+0

您可以添加许可证吗?这也解决了我的问题,但是我没有许可证就无法使用。谢谢! –

0

取而代之的是复杂的方法,我会让它通过在每边添加额外的空白项目来居中它,直到这两个按钮位于窗口中间。工具栏应该适当调整大小。

相关问题