Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/9.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
Cocoa 界面生成器-使用布局视图框_Cocoa_Macos_Xcode4_Interface Builder - Fatal编程技术网

Cocoa 界面生成器-使用布局视图框

Cocoa 界面生成器-使用布局视图框,cocoa,macos,xcode4,interface-builder,Cocoa,Macos,Xcode4,Interface Builder,我在应用程序中使用布局视图-“框”,当我构建它时,我得到以下警告。 “不支持的配置。填充颜色属性需要NSCustomBox类型和NSLineBorder类型”。我使用的是XCode 4.0。 原因可能是什么?我如何解决 谢谢 LS Developer如果我将非自定义主框的边框颜色或填充颜色设置为IB初始化为的颜色以外的任何颜色,我会收到一条警告“border color属性需要NSCustomBox类型和NSLineBorder类型” 我可以通过将“初始”颜色从另一个项目中的框拖到框的“属性IB

我在应用程序中使用布局视图-“框”,当我构建它时,我得到以下警告。 “不支持的配置。填充颜色属性需要NSCustomBox类型和NSLineBorder类型”。我使用的是XCode 4.0。 原因可能是什么?我如何解决

谢谢


LS Developer

如果我将非自定义主框的边框颜色或填充颜色设置为IB初始化为的颜色以外的任何颜色,我会收到一条警告“border color属性需要NSCustomBox类型和NSLineBorder类型”

我可以通过将“初始”颜色从另一个项目中的框拖到框的“属性IB检查器”窗格中有问题的颜色选项上,从而消除警告

填充颜色更改会产生稍有不同的警告文本,但在另一个项目中从原始框拖动填充颜色也会消除该警告。
苹果似乎忘了在颜色选择菜单中添加“初始值”项。

迟做总比不做好,但在我搜索时,这是我找到的唯一一条描述此事的线索。不管怎样,谢谢路人,你的回答帮我找到了另一个解决办法。可能会对某人有所帮助,因为拖放颜色对我来说并不完全有效

  • 在interface builder中找到您的框并给它一个唯一的名称(只是暂时的)
  • 右键单击您的.xib并选择“作为打开”>“源代码”
  • 搜索你给盒子起的名字(或其他什么)
  • 您会发现类似这样的内容:

    <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"/>
    
    
    67108864
    0
    唯一的
    3.
    mcawljgwmdawmdaxmdaxmtkaa
    0
    0
    0
    不
    对
    6.
    系统
    文本颜色
    
  • 删除
    NO
    之后的所有内容,直到下一个
    ,留下:

    <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>
    
    
    67108864
    0
    唯一的
    3.
    mcawljgwmdawmdaxmdaxmtkaa
    0
    0
    0
    不
    
  • 该项目的所有警告都将消失,只有一条除外:
    此存档包含对标识符为“483112007”的对象的引用,但不包含具有匹配标识符的对象。
    在.xib源代码中搜索该编号并删除该行,例如
    。在我的例子中,它只是再往下几行


  • 但仍然没有找到问题的原因。从来没有任何设置颜色的警告,在意外地拖动IB中的某些项目后,此警告意外弹出。

    根据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>
    
    否
    1.
    msawljgwmdawmdawmdaxmdaxmdaxmdkgmtc40mdawmdawmdygmc4wnaa
    

    然后我删除了
    我解决了在一个新项目中从NSBox拖放颜色的问题,正如Wayfaring陌生人建议的那样。如果您想手动更改XIB,更改(我在Xcode 5.0.2上)如下:

    已删除(您的值可能会不同,这是“默认颜色”:

    -
    - 
    
    替换为:

    + <color key="borderColor" white="0.0" alpha="0.41999999999999998" colorSpace="calibratedWhite"/>
    + <color key="fillColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
    
    +
    + 
    

    当然,在相关章节中,XIB是第5版。

    我只是通过在IB中选择框类型中的Custom来解决这个问题。这使得消息立即消失


    首先,我对这条消息感到困惑,因为我做了类似的事情(即更改NSBox的背景色)在另一个项目中改为白色。但后来我记得我也更改了框类型。这就成功了。

    由于我的框只是装饰性的,我创建了一个新框,将旧框中的按钮移动到新框中,并删除了旧框。问题结束。

    您是否尝试过使用
    NSCustomBox
    NSLineBorder
    ?Xcode 6.2再次,我从一个新实例化的NSBox复制了
    borderColor
    fillColor
    标记,从而消除了警告。此外,我必须清理项目,关闭Xcode,然后重新构建,以最终使警告消失
    + <color key="borderColor" white="0.0" alpha="0.41999999999999998" colorSpace="calibratedWhite"/>
    + <color key="fillColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>