2 // NSTextFieldExtension.swift
5 // Created by Hori,Masaki on 2017/09/16.
6 // Copyright © 2017年 Hori,Masaki. All rights reserved.
11 extension NSTextField {
13 func maskImage(middle1: CGFloat, middle2: CGFloat) -> CGImage {
15 guard let maskContext = CGContext(data: nil,
16 width: Int(bounds.width),
17 height: Int(bounds.height),
19 bytesPerRow: Int(bounds.width),
20 space: CGColorSpaceCreateDeviceGray(),
23 fatalError("Can not create bitmap context")
26 let maskGraphicsContext = NSGraphicsContext(cgContext: maskContext, flipped: false)
28 NSGraphicsContext.saveGraphicsState()
29 defer { NSGraphicsContext.restoreGraphicsState() }
31 NSGraphicsContext.current = maskGraphicsContext
33 let gradient = NSGradient(colorsAndLocations: (.white, 0.0),
37 gradient?.draw(in: bounds, angle: 0.0)
39 guard let r = maskContext.makeImage() else { fatalError(" can not create image from context") }
44 func isCharacterProtrude() -> Bool {
46 guard let currentFont = font else { return Logger.shared.log("TextField dose not set font", value: false) }
48 let string = stringValue as NSString
49 let size = string.size(withAttributes: [.font: currentFont])
51 return bounds.size.width - size.width < 3