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 let colorspace = CGColorSpaceCreateDeviceGray()
17 guard let maskContext = CGContext(data: nil,
18 width: Int(bounds.width),
19 height: Int(bounds.height),
21 bytesPerRow: Int(bounds.width),
25 fatalError("Can not create bitmap context")
28 let maskGraphicsContext = NSGraphicsContext(cgContext: maskContext, flipped: false)
31 NSGraphicsContext.saveGraphicsState()
32 defer { NSGraphicsContext.restoreGraphicsState() }
34 NSGraphicsContext.current = maskGraphicsContext
36 let gradient = NSGradient(colorsAndLocations: (.white, 0.0),
40 gradient?.draw(in: bounds, angle: 0.0)
42 guard let r = maskContext.makeImage() else { fatalError(" can not create image from context") }
47 func isCharacterProtrude() -> Bool {
49 guard let currentFont = font else {
51 Swift.print("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