2011-03-05 87 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