Еще раз Xcode IB разочаровывает разработчиков в ненужных предупреждениях.
Чувствовал себя так же, пока не увидел, как моя типография отличается в 10.10 по сравнению с 10.11. Одно дело - сообщение - это мусор, не указывая на проблемный элемент раскадровки, см. P.S section of the post для полуобработки.
Текущий ответ почти получает его, но проблема заключается не в том, что стили шрифтов недоступны в старых целях, а с Xcode, которые не обрабатывают их правильно, см. full blog post.
Если вы хотите сохранить свои стили, используйте настраиваемое текстовое поле с пользовательским проверяемым свойством. Откройте инспектор удостоверений личности и установите собственный класс в TextField, предпочтительный атрибут веса шрифта появится в инспекторе атрибутов, установите требуемое значение, постройте и получите результат.
import AppKit
@IBDesignable public class TextField: NSTextField
{
@IBInspectable public var preferredFontWeight: Int = 0
override public func awakeFromNib() {
if #available(OSX 10.11, *) {
return
}
guard
let weight: Int = self.preferredFontWeight where weight > 0,
let font: NSFont = self.font,
let name: String = font.familyName,
let manager: NSFontManager = NSFontManager.sharedFontManager() else {
return
}
// Full details here – https://developer.apple.com/library/mac/documentation/Cocoa/Reference/ApplicationKit/Classes/NSFontManager_Class/#//apple_ref/occ/instm/NSFontManager/convertWeight:ofFont:
//
// 1 – ultralight
// 2 – thin
// 3 – light, extralight
// 4 – book
// 5 – regular, display
// 6 – medium
// 7 – demi, demibold
// 8 – semi, semibold
// 9 – bold
// 10 – extra, extrabold
// 11 – heavy
// 12 – black
// 13 – ultrablack
// 14 – extrablack
if let font: NSFont = manager.fontWithFamily(name, traits: manager.traitsOfFont(font), weight: weight, size: font.pointSize) {
self.font = font
}
}
}
Если вы на самом деле не заботиться о стилях, использовать обычный вес шрифт для всего текста, он должен решить проблему, обратитесь к моим ранее answer доступным опциям.
Можете ли вы сделать урезанный образец образца, демонстрирующий это предупреждение, доступное где-нибудь? –
@MichaelDautermann Я попытался изолировать проблему, удалив объекты один за другим, но предупреждение все еще появляется, пока каждый объект не будет удален из файла –
yep! Вот почему я надеялся увидеть пример проекта, в котором была проблема, тогда я мог бы попытаться разобраться с вами (и всеми остальными :-). Удалите все, кроме одного объекта в xib (где предупреждение все еще появляется). –