OSDN Git Service

OKボタンを押した時に正しく値が反映されない問題を修正
[kcd/KCD.git] / KCD / CalculateConditionPanelController.swift
1 //
2 //  CalculateConditionPanelController.swift
3 //  KCD
4 //
5 //  Created by Hori,Masaki on 2017/07/10.
6 //  Copyright © 2017年 Hori,Masaki. All rights reserved.
7 //
8
9 import Cocoa
10
11 final class CalculateConditionPanelController: NSWindowController {
12     
13     override var windowNibName: NSNib.Name {
14         
15         return .nibName(instanceOf: self)
16     }
17     
18     @objc dynamic var condition: Double = 1
19     
20     private var originalCondition: Double = 1
21     
22     @IBAction func ok(_ sender: Any?) {
23         
24         self.window?.endEditing(for: nil)
25         
26         exitModal()
27     }
28     
29     @IBAction func cancel(_ sender: Any?) {
30         
31         condition = originalCondition
32         
33         exitModal()
34     }
35     
36     private func exitModal() {
37         
38         self.window?.sheetParent?.endSheet(self.window!)
39     }
40     
41     func beginModal(for mainWindow: NSWindow, completeHander handler: @escaping (Double) -> Void) {
42         
43         guard let window = self.window else {
44             
45             return
46         }
47         
48         originalCondition = condition
49         
50         mainWindow.beginSheet(window) { _ in
51             
52             handler(self.condition)
53         }
54     }
55     
56 }