Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c NSToolbar在豹子和雪豹身上看起来不同_Objective C_Cocoa_Osx Snow Leopard_Osx Leopard_Nstoolbar - Fatal编程技术网

Objective c NSToolbar在豹子和雪豹身上看起来不同

Objective c NSToolbar在豹子和雪豹身上看起来不同,objective-c,cocoa,osx-snow-leopard,osx-leopard,nstoolbar,Objective C,Cocoa,Osx Snow Leopard,Osx Leopard,Nstoolbar,我正在开发一个Cocoa应用程序,我在主窗口中使用的在外观上得到了不同的结果 具体来说,我使用了一个搜索字段作为最后一个,而在Snow Leopard下,它会正确显示: 它是在豹纹下切割的: 从这两个版本来看,Leopard似乎不尊重我在项目之间设置的空格。我还看到,有时在Interface Builder的工具栏上进行一些更新后,即使在雪地环境下,这些更改也不会反映在正在运行的应用程序中。我必须从“自定义”菜单中拖动默认栏才能看到它们 更新 NSToolbar不总是镜像.nib文件中的内容

我正在开发一个Cocoa应用程序,我在主窗口中使用的在外观上得到了不同的结果

具体来说,我使用了一个搜索字段作为最后一个,而在Snow Leopard下,它会正确显示:

它是在豹纹下切割的:

从这两个版本来看,Leopard似乎不尊重我在项目之间设置的空格。我还看到,有时在Interface Builder的工具栏上进行一些更新后,即使在雪地环境下,这些更改也不会反映在正在运行的应用程序中。我必须从“自定义”菜单中拖动默认栏才能看到它们

更新 NSToolbar不总是镜像.nib文件中的内容的原因在于为我启用的自动保存机制,正如NSGod建议的那样

这种不当行为的原因是什么? 我是否应该考虑约束(最小和最大)尺寸? 请随意向我指出一些文档

更新2
有没有一种方法可以通过编程将项和空格引入NSToolbar,或者检查使用Interface Builder输入的项和空格的一致性(在运行时)?

虽然我记得在
NSToolbar
s中的搜索字段中有一些奇怪的地方,但我从未见过右侧被切断的行为

空间是固定的一个单位空间还是灵活的空间

“我有时也看到,在我 在中的工具栏上进行一些更新 界面生成器,这些更改是 未在运行中镜像 即使在下雪的情况下,我也要申请 从菜单中拖动默认栏 自定义菜单以查看它们。“

您需要记住,如果在工具栏中启用了用户自定义和自动保存行为,那么当用户明确进行更改时,它将保存为用户默认值。如果随后在IB中重新排列工具栏并运行应用程序,则用户默认设置中保存的配置可能会覆盖nib文件中指定的默认配置

我通常做的是在测试期间,删除我的应用程序的prefs文件,这样更改就不会被覆盖。(FWIW,我通常使用保存为应用程序的AppleScript,它保存在我的Dock中。它只运行一个
do shell script
命令来删除prefs文件。作为一个面向GUI的类型的人,我更容易在调试之前单击它让它运行。这个版本的脚本要求删除prefs文件,尽管它也可以自定义:。如果您以前从未运行过它,则会出现“选择文件”对话框,所选文件将作为别名保存在实际的AppleScript中,因此不会再次询问您。您可以将图标拖到AppleScript编辑器上查看脚本或对其进行更改)


无论如何,如果我要发布一个使用新工具栏布局的应用程序的新版本,并希望防止覆盖配置,我会将工具栏的标识符(或自动保存名称)更改为类似“docToolbar2.0”的内容。

关于自动保存覆盖默认工具栏布局的说法是正确的。我现在使用的空间都是固定的(搜索字段和分段控件之间没有空间),但以前有人很灵活。从Leopard下的屏幕截图来看,分段控件和搜索字段之间似乎有一个灵活的空间,搜索字段被剪切,就好像没有空间一样。最小尺寸重要吗?我有一个关于这个职位的工作给你。。。您能与我联系吗?我认为您最好使用传统的NSToolbar委托方法来管理复杂的工具栏,而不是在Interface Builder中构建工具栏。你对代理有更多的控制权。