1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 |
- //
- // KMLightMemberAlertView.swift
- // PDF Reader Pro
- //
- // Created by lizhe on 2023/2/24.
- //
- import Cocoa
- class KMLightMemberAlertView: KMBaseXibView {
- @IBOutlet weak var titleLabel: NSTextField!
- @IBOutlet weak var titleContentView: NSView!
-
- var timer: DispatchSourceTimer?
-
- var result: Result = Result() {
- didSet {
- self.alphaValue = 1.0
- self.reloadData()
- }
- }
- override func draw(_ dirtyRect: NSRect) {
- super.draw(dirtyRect)
- // Drawing code here.
- }
-
- override func setup() {
- super.setup()
- self.result = Result(code: 0)
- }
-
- override func updateUI() {
- super.updateUI()
- self.contentView.backgroundColor(NSColor.km_init(hex: "#FDC7C6"))
-
- self.titleLabel.font = NSFont.SFProTextRegularFont(14.0)
- self.titleLabel.textColor = NSColor.km_init(hex: "#252629")
- }
-
- override func reloadData() {
- super.reloadData()
-
- if result.code == 200 || result.code == 0 {
- self.contentView.isHidden = true
- } else {
- self.contentView.isHidden = false
- }
-
- self.titleLabel.stringValue = NSLocalizedString(KMRequestServerErrorCodeType.typeOfMessage(type: KMRequestServerErrorCodeType(rawValue: result.code)), comment: "")
-
- self.callMethodWithDelay()
- }
-
- func fetchAlertHeight() -> CGFloat {
- let string: NSString = self.titleLabel.stringValue as NSString
-
- let paragraphStyle = NSMutableParagraphStyle()
- // paragraphStyle.lineHeightMultiple = 1.32
- paragraphStyle.alignment = .left
- let size: NSSize = string.boundingRect(with: NSSize(width: 356, height: 100), options: NSString.DrawingOptions(rawValue: 3), attributes: [NSAttributedString.Key.font : NSFont.SFProTextRegularFont(14), NSAttributedString.Key.paragraphStyle : paragraphStyle]).size
- return size.height + 32
- }
-
- func callMethodWithDelay() {
- // 取消之前的计时器
- timer?.cancel()
- // 创建一个新的计时器,延迟 2 秒
- timer = DispatchSource.makeTimerSource()
- timer?.schedule(deadline: .now() + 3, leeway: .milliseconds(10))
- timer?.setEventHandler(handler: { [unowned self] in
- // 2 秒后执行的代码
- methodToExecuteAfterDelay()
- })
- timer?.resume()
- }
- func methodToExecuteAfterDelay() {
- // 执行的代码
- self.fadeOut()
- }
-
- func fadeOut() {
- NSAnimationContext.runAnimationGroup({ (context) in
- context.duration = 1
- animator().alphaValue = 0.0
- }, completionHandler: nil)
- }
- override func updateLanguage() {
- super.updateLanguage()
- }
- }
|