2011-12-23 92 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