Интерфейсный Разработчик - Использование Layout View-Box - PullRequest
5 голосов
/ 19 июля 2011

Я использую Layout View - «Box» в своем приложении, и когда я его создаю, я получаю следующее предупреждение.«Неподдерживаемая конфигурация. Для свойства Fill Color требуется тип NSCustomBox и тип NSLineBorder». Я использую XCode 4.0.В чем может быть причина и как я могу это исправить?

Спасибо,

LS Developer

Ответы [ 6 ]

4 голосов
/ 25 октября 2011

Если я задаю цвет границы или цвет заливки нестандартного основного блока для чего-либо, кроме цвета, который IB инициализирует как: я получаю предупреждение «Для свойства цвета границы требуется тип NSCustomBox и тип NSLineBorder»

Я могу убрать предупреждение, перетаскивая «исходный» цвет из поля в РАЗЛИЧНОМ проекте на выбравший цвет вариант на панели инспектора IB атрибута.

При изменении цвета заливки появляется немного другой текст предупреждения, ноперетаскивание цвета заливки из чистого окна в другом проекте также устраняет это предупреждение.Apple, кажется, забыла добавить элемент «начальная стоимость» в меню выбора цвета.

3 голосов
/ 20 мая 2013

Лучше поздно, чем никогда, но, когда я искал, это была единственная нить, которую я нашел, описывающая проблему. В любом случае, спасибо Wayfaring Stranger, ваш ответ помог мне найти альтернативное решение. Может кому-то помочь, так как перетаскивание цветов мне не совсем подходит.

  1. Найдите свой ящик в конструкторе интерфейсов и дайте ему уникальное имя (только временно).
  2. Щелкните правой кнопкой мыши на .xib и выберите «открыть как»> «исходный код».
  3. Выполните поиск по имени, которое вы дали своему ящику (или какому-либо другому).
  4. Вы найдете что-то вроде этого:

    <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"/>
    
  5. Удалите все после <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>
    
  6. Все ваши предупреждения для этого элемента исчезнут, кроме одного: 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 голосов
/ 16 декабря 2013

Я решил перетаскивать цвета из NSBox в новом проекте, как предложил Wayfaring Stranger. Если вы хотите вручную изменить XIB, изменения (я на Xcode 5.0.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.

0 голосов
/ 11 мая 2014

Поскольку мой ящик был просто косметическим, я создал новый ящик, переместил кнопки в старом окне в новый и удалил старый.Конец проблемы.

0 голосов
/ 04 марта 2014

Я просто решил проблему, выбрав Custom из Box Type в IB. Это заставило сообщение немедленно уйти.

Сначала я был озадачен сообщением, поскольку в другом проекте я сделал похожую вещь (а именно, изменив цвет фона NSBox) на белый. Но потом я вспомнил, что я также изменил тип коробки. И это помогло.

0 голосов
/ 06 июня 2013

На основании ответа Джонаса мне удалось исправить свои предупреждения, выполнив поиск NSTransparent в файле .xib:

Щелкните правой кнопкой мыши или щелкните, удерживая клавишу 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> включительно, и предупреждений больше не было.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...