Swift - Drawing text with drawInRect:withAttributes:
swift
Solution
The problem is that `font` is optional because the convenience contructors now return optional values, so `font` needs to be unwrapped to be a value in your dictionary:
if let actualFont = font {
let textFontAttributes = [
NSFontAttributeName: actualFont,
NSForegroundColorAttributeName: textColor,
NSParagraphStyleAttributeName: textStyle
]
text.drawInRect(NSOffsetRect(textRect, 0, 1), withAttributes: textFontAttributes)
}
Problem
I have strange problem with Xcode 6.1 GM. ``` let text: NSString = "A" let font = NSFont(name: "Helvetica Bold", size: 14.0) let textRect: NSRect = NSMakeRect(5, 3, 125, 18) let textStyle = NSMutableParagraphStyle.defaultParagraphStyle().mutableCopy() as NSMutableParagraphStyle textStyle.alignment = NSTextAlignment.LeftTextAlignment let textColor = NSColor(calibratedRed: 0.147, green: 0.222, blue: 0.162, alpha: 1.0) let textFontAttributes = [ NSFontAttributeName: font, NSForegroundColorAttributeName: textColor, NSParagraphStyleAttributeName: textStyle ] text.drawInRect(NSOffsetRect(textRect, 0, 1), withAttributes: textFontAttributes) ``` Error is in line let texFontAttributes... ``` Cannot convert the expression's type 'Dictionary' to type 'DictionaryLiteralConvertible' ``` This code is worked perfectly until Xcode 6.1 GM. When I'm tried to declare textFontAttributes as NSDictionary error message is changed to: ``` Cannot convert the expression's type 'NSDictionary' to type 'NSString!' ``` I have no idea how to solve this problem :(