Objective c NSToolbar在豹子和雪豹身上看起来不同
我正在开发一个Cocoa应用程序,我在主窗口中使用的在外观上得到了不同的结果 具体来说,我使用了一个搜索字段作为最后一个,而在Snow Leopard下,它会正确显示: 它是在豹纹下切割的: 从这两个版本来看,Leopard似乎不尊重我在项目之间设置的空格。我还看到,有时在Interface Builder的工具栏上进行一些更新后,即使在雪地环境下,这些更改也不会反映在正在运行的应用程序中。我必须从“自定义”菜单中拖动默认栏才能看到它们 更新 NSToolbar不总是镜像.nib文件中的内容的原因在于为我启用的自动保存机制,正如NSGod建议的那样 这种不当行为的原因是什么? 我是否应该考虑约束(最小和最大)尺寸? 请随意向我指出一些文档 更新2Objective 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文件中的内容
有没有一种方法可以通过编程将项和空格引入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中构建工具栏。你对代理有更多的控制权。