2011-03-05 117 views
0

我有一個可可應用程序我正在工作,我在外觀上得到了不同的結果NSToolbar我正在使用主窗口。NSToolbar在豹和雪豹看起來不一樣

具體地說,我使用的搜索字段作爲最後NSToolbarItem和,而在雪豹是正確顯示: enter image description here

綜觀: enter image description here

是下切豹這兩個版本看起來似乎是我放在項目之間的空間在Leopard下不受尊重。有時,我在界面生成器的工具欄上進行了一些更新後,即使在雪下,這些更改也不會在運行的應用程序中進行鏡像。我必須從定製菜單拖動默認欄才能看到它們。

UPDATE 的原因NSToolbar並不總是鏡像什麼是在筆尖文件駐留在那對我來說已啓用,作爲NSGod建議自動保存機制。

這種不良行爲的原因是什麼? 是否有關於我應該考慮的約束條件(最小和最大)大小? 隨意一些文件指向我

更新2 有沒有一種方法以編程方式引進項目和空格成NSToolbar或者檢查那些界面生成器中輸入的一致性(在運行時)?

+0

我有一個關於這個帖子的工作http://stackoverflow.com/questions/3481858/tutorial-on-how-to-drag-and-drop-item-from-uitableview-to-uitableview ...你能聯繫我嗎 ? – Tariq 2011-03-12 07:43:55

+0

在我看來,使用傳統的NSToolbar委託方法管理複雜的工具欄比在Interface Builder中構建工具欄更好。你對代表有更多的控制權。 – 2011-04-09 02:14:02

回答

1

雖然我確實記得在NSToolbar的搜索字段中存在一些奇怪的問題,但我從未看到它的右側被切斷的行爲。

作爲空間的NSToolbarItem是固定的單位空間還是靈活空間?

「我也看到了,有時,當我 做一些更新的工具欄 Interface Builder中,這些變化 不是即使在雪地上的行駛 應用程序鏡像。我必須 阻力默認酒吧從 定製菜單才能看到它們。「

您需要注意的是,如果您在工具欄中啓用了用戶自定義和自動保存行爲,那麼當用戶明確進行更改時,它將保存爲用戶默認值。如果您隨後在IB中重新安排工具欄並運行應用程序,則可能以用戶默認值保存的配置將覆蓋您在nib文件中指定的默認配置。

我通常做的是在測試過程中,刪除我的應用程序的prefs文件,以便更改不能被覆蓋。 (FWIW,我通常使用AppleScript作爲應用程序保存在我的Dock中,它只運行一個do shell script命令,刪除prefs文件。作爲一個面向GUI的類型的人,只需點擊它即可它在調試之前運行,該版本的腳本要求刪除prefs文件,但也可以自定義:http://www.markdouma.com/developer/DeleteAppPrefs.zip。如果你以前從未運行過它,則會出現選擇文件對話框,並且所選文件將作爲別名保存在實際的AppleScript中,因此不會再詢問。您可以將圖標拖到AppleScript Editor上查看腳本或更改它)。無論如何,如果我要發佈一個使用新工具欄佈局的應用程序的新版本,並且想要防止配置被覆蓋,我會更改工具欄的標識符(或自動保存名稱)像「docToolbar2.0」。

+0

您對覆蓋默認工具欄佈局的自動覆蓋是正確的。我使用的空間現在都是固定的(並且在搜索字段和分段控件之間沒有空間),但以前有人是靈活的。從Leopard下的截圖看來,好像在分段控件和搜索字段之間存在靈活的空間,並且搜索字段被剪切爲好像沒有空間。最小尺寸可以重要嗎? – rano 2011-03-05 22:53:38