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 {
41 fatalError(" can not create image from context")
47 func isCharacterProtrude() -> Bool {
49 guard let currentFont = font else {
51 Logger.shared.log("TextField dose not set font")
56 let string = stringValue as NSString
57 let size = string.size(withAttributes: [.font: currentFont])
59 return bounds.size.width - size.width < 3