我在我的应用程序中使用布局视图 - 'Box',当我构建它时,我收到以下警告。 “不支持的配置。填充颜色属性需要NSCustomBox类型和NSLineBorder类型”。我正在使用XCode 4.0。 可能是什么原因以及如何解决?
谢谢,
LS Developer
答案 0 :(得分:4)
如果我将非自定义主框的边框颜色或填充颜色设置为IB将其初始化为颜色以外的任何颜色,我会收到警告“边框颜色属性需要NSCustomBox类型和NSLineBorder类型”
我可以通过将“初始”颜色从不同项目中的框拖动到框的属性IB检查器窗格中的违规颜色选项来消除警告。
填充颜色更改会产生稍微不同的警告文本,但是从另一个项目中的原始框中拖动填充颜色也会消除该警告。 Apple似乎忘记在其颜色选择菜单中添加“初始值”项目。
答案 1 :(得分:3)
迟到总比没有好,但在我搜索时,这是我发现描述此事的唯一主题。无论如何,感谢Wayfaring Stranger,你的回答帮助我找到了另一种方法。可能会帮助某人,因为颜色的拖拽并不适合我。
你会发现这样的事情:
<object class="NSTextFieldCell" key="NSTitleCell">
<int key="NSCellFlags">67108864</int>
<int key="NSCellFlags2">0</int>
<string key="NSContents">uniqueNameHere</string>
<reference key="NSSupport" ref="26"/>
<reference key="NSBackgroundColor" ref="449986353"/>
<object class="NSColor" key="NSTextColor">
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MCAwLjgwMDAwMDAxMTkAA</bytes>
</object>
</object>
<reference key="NSContentView" ref="183372649"/>
<int key="NSBorderType">0</int>
<int key="NSBoxType">0</int>
<int key="NSTitlePosition">0</int>
<bool key="NSTransparent">NO</bool>
<bool key="NSFullyTransparent">YES</bool>
<real value="0.0" key="NSBorderWidth2"/>
<object class="NSColor" key="NSBorderColor2" id="483112007">
<int key="NSColorSpace">6</int>
<string key="NSCatalogName">System</string>
<string key="NSColorName">textColor</string>
<reference key="NSColor" ref="703464901"/>
</object>
<reference key="NSFillColor2" ref="483112007"/>
删除<bool key="NSTransparent">NO</bool>
之后的所有内容,直至下一个</object></array>
,然后留下:
<object class="NSTextFieldCell" key="NSTitleCell">
<int key="NSCellFlags">67108864</int>
<int key="NSCellFlags2">0</int>
<string key="NSContents">uniqueNameHere</string>
<reference key="NSSupport" ref="26"/>
<reference key="NSBackgroundColor" ref="449986353"/>
<object class="NSColor" key="NSTextColor">
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MCAwLjgwMDAwMDAxMTkAA</bytes>
</object>
</object>
<reference key="NSContentView" ref="183372649"/>
<int key="NSBorderType">0</int>
<int key="NSBoxType">0</int>
<int key="NSTitlePosition">0</int>
<bool key="NSTransparent">NO</bool>
该项目的所有警告都将消失,除了一个:This archive contains a reference to an object with the identifier "483112007" but does not contain an object with a matching identifier.
在.xib源代码中搜索该号码并删除该行,例如<reference key="NSBorderColor2" ref="483112007"/>
。在我的情况下,它只是向下几行。
但仍然没有弄清楚问题的原因。从来没有任何警告设置颜色,并且在意外拖动IB中的某些项目后意外弹出了这个警告。
答案 2 :(得分:2)
已删除(您的值可能会有所不同,即“默认颜色”:
- <color key="borderColor" name="textColor" catalog="System" colorSpace="catalog"/>
- <color key="fillColor" name="textColor" catalog="System" colorSpace="catalog"/>
替代:
+ <color key="borderColor" white="0.0" alpha="0.41999999999999998" colorSpace="calibratedWhite"/>
+ <color key="fillColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
当然,在相关部分。 XIB是版本5.
答案 3 :(得分:0)
根据Jonas的回答,我设法通过在.xib文件中搜索NSTransparent来修复我的警告:
右键单击或按住Ctrl键单击.xib并选择“打开为” - >源代码'
搜索NSTransparent以查找类似于:
的内容<bool key="NSTransparent">NO</bool>
<object class="NSColor" key="NSFillColor2">
<int key="NSColorSpace">1</int>
<bytes key="NSRGB">MSAwLjgwMDAwMDAxMTkgMC40MDAwMDAwMDYgMC4wNAA</bytes>
</object>
然后我将<object class="NSColor"
删除为</object>
,并且警告已不复存在。
答案 4 :(得分:0)
我只是在IB中选择Custom from Box Type来解决这个问题。这使得信息立即消失。
首先,我对这条消息感到困惑,因为我在另一个项目中做了类似的事情(即改变NSBox的背景颜色)到白色。但后来我记得我也改变了Box Type。这就是诀窍。
答案 5 :(得分:0)
由于我的盒子只是化妆品,我创建了一个新盒子,将旧盒子中的按钮移动到新盒子,然后删除旧盒子。问题结束。