2014-01-11 79 views
1

問題解決了!:NSPopUpButton在NSToolbar這種惱人

只需選中「統一標題和工具欄」的NSWindow和1像素下的問題選項消失了!

enter image description here

更改的工具欄高度只需選擇工具欄項 - 在尺寸檢查自定義視圖和改變大小。

==============================

如果你知道的Xcode 5S佈局應該比你認識這樣的:

xcode 5 targets

我想建立它自己。所以我在窗口中拖動了一個工具欄並添加了一個NSPopUpButton。然後我將PopUp Button Cell Style更改爲Radio並關閉了箭頭。到現在爲止還挺好。

enter image description here

我首先注意到的是,工具欄具有不同的高度。有人知道如何改變這種行爲(沒有繼承NSToolbar)嗎?

我注意到的第二個也更煩人的事情是,如果我從PopUp按鈕中選擇一個項目,NSMenuItem的圖像向下移動1個像素。

編輯:Xcode中NSMenuItems不要移動1像素向下

enter image description here

那件事有什麼建議?

回答

1

NSToolbar,可悲的是,不能真正被分類。這是一個寫得很差的類,它試圖變得非常「神奇」,因此它甚至不是NSView的子類,你無法控制它的繪製方式,它會創建一個私有視圖。

您可以設置其「sizeMode」,但我認爲您已經完成了這一步,發現像素數量並不是您想要的。

最簡單的事情就是爲窗口頂部的窗口頂部留出空間(位於文檔內容上方),併爲您自動佈置按鈕位置。 (由於其侷限性,我多年來一直無法使用真正的NSToolbar。)

至於popUp菜單與按鈕錯誤對齊:其中菜單繪製基本上是硬編碼的,所以如果你使用NSPopUpButton不期望的按鈕樣式,那麼菜單將被偏移一些。

如果您已經試過只是取消選中默認樣式的NSPopUpButton上的「繪製邊框」標誌(一種新鮮的調色板),有兩種方法可以嘗試:一種是繼續嘗試不同的buttonStyles,它們看起來是正確的直到你找到一個沒有抵消的東西。二是讓buttonStyle做爲NSPopUpButtons的默認值,但爲buttonCell創建子類,並讓它不繪製邊框(但仍留下空間)。