2011-12-23 103 views
4

我以Lion Mail.app的风格构建Mac应用程序。作为这一部分,我试图创建一个Mail.app中的一个类似的工具栏,但我似乎无法让我的工具栏按钮中的图像垂直居中。你如何在NSButton上垂直居中图像

望着Mail.app工具栏我看到一个漂亮的一系列按钮以居中图标:

enter image description here

,但是当我去Interface Builder中我似乎无法重现相同的按钮。我得到的是:

enter image description here

我已经尝试做的是,在Interface Builder:

  1. 创建一个新的窗口
  2. 添加NSToolbar到窗口
  3. 添加NSButton到具有样式的工具栏 - 'Push',图像 - 'Envelope',位置 - 'NSImageOnly',缩放 - '按比例降低'

正如你所看到的,这个图标显然不是像Mail.app工具栏那样在按钮上垂直居中。

有人有什么想法?

目前我正在使用XCode 4.2并使用Interface Builder布置此按钮。我试图通过仅将图像添加到按钮来创建工具栏按钮,而不是为每个项目绘制按钮,即绘制边框和图标。

任何帮助将不胜感激,因为这一直驱使我一些坚果。

在此先感谢 - AYAL

回答

0

一种方式做到这一点是让你的图像实际上是按钮,即占用所有按钮的画布。您将不得不使用按钮的setBordered:方法,以便不绘制按钮的边框。

-3

你可以制作像gimp或photoshop这样的按钮图像,然后用它作为按钮的背景或图像。

我觉得你会说“这就是我要做的”。也许你做了一个小邮件图标,但我的意思是让你做出整个按钮,轮廓和一切,然后用它来做按钮图像。合理?

喜欢这里,就以此为背景 enter image description here

+0

很好的答案,但我希望能找到一个方法来“打造”的按钮编程,而不是画手的按钮。 – Ayal 2011-12-25 13:55:31

+0

我不明白你的意思。这个PNG应该是一个资源,那么不管你使用IB还是使用它,都应该和button.imageview.image一样。如果这不回答你的问题,那么我认为你需要更新你的问题 – 2011-12-27 16:00:55

+0

这不是一个好主意。按钮的样式可以在不同版本的OS X中改变。即使在单个版本中,也有许多设置可以修改UI元素的形状和样式。与Cocoa的大多数事情一样,最好找到“Apple方式”来做某件事,而不是试图发明一种解决方案来模拟操作系统正在做什么。 – 2016-03-14 13:45:45

9

原来的答案,这个问题就简单多了,然后我的预期。经过大量的牙齿啃咬,头发拉扯和扭曲的像素,我遇到了解决方案。

而不是使用“推”按钮,我只需切换到“圆形纹理”按钮。一旦我做到了,我添加到按钮的任何图像都很好地居中。接下来,我只需手动调整我的图像看起来是正确的。

该配方然后为邮件。应用工具栏如下:

  1. 将按钮添加到工具栏
  2. 的按钮样式设置为“圆纹理”
  3. 设置按钮
  4. 将位置设置“NSImageOnly”
  5. 形象
  6. 设置按钮的大小40×25以及最小和ToolbarItem

结果的最大尺寸是一个工具栏,可以看得很simular到马il.app工具栏。

感谢所有 - AYAL