Skip to content

Commit 4df8920

Browse files
committed
NSVieController + create → Controllable
1 parent 24b8c80 commit 4df8920

File tree

6 files changed

+61
-26
lines changed

6 files changed

+61
-26
lines changed

POP Translator.xcodeproj/project.pbxproj

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,9 @@
2828
FCF5AD6621FFF606004609F7 /* NSNotification.Name + Custom.swift in Sources */ = {isa = PBXBuildFile; fileRef = FCF5AD6521FFF606004609F7 /* NSNotification.Name + Custom.swift */; };
2929
FCF5AD6822000026004609F7 /* NSStoryboard.Name + Identifier.swift in Sources */ = {isa = PBXBuildFile; fileRef = FCF5AD6722000026004609F7 /* NSStoryboard.Name + Identifier.swift */; };
3030
FCF5AD6A2200005D004609F7 /* NSObject + reuseIdentifier.swift in Sources */ = {isa = PBXBuildFile; fileRef = FCF5AD692200005D004609F7 /* NSObject + reuseIdentifier.swift */; };
31-
FCF5AD6C220003F2004609F7 /* NSViewController + create.swift in Sources */ = {isa = PBXBuildFile; fileRef = FCF5AD6B220003F2004609F7 /* NSViewController + create.swift */; };
31+
FCF5AD6C220003F2004609F7 /* Controllable.swift in Sources */ = {isa = PBXBuildFile; fileRef = FCF5AD6B220003F2004609F7 /* Controllable.swift */; };
3232
FCF5AD6E220004AE004609F7 /* LicenseViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = FCF5AD6D220004AE004609F7 /* LicenseViewController.swift */; };
33+
FCF5AD70220084AE004609F7 /* LicenseWindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = FCF5AD6F220084AE004609F7 /* LicenseWindowController.swift */; };
3334
/* End PBXBuildFile section */
3435

3536
/* Begin PBXCopyFilesBuildPhase section */
@@ -77,8 +78,9 @@
7778
FCF5AD6521FFF606004609F7 /* NSNotification.Name + Custom.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "NSNotification.Name + Custom.swift"; sourceTree = "<group>"; };
7879
FCF5AD6722000026004609F7 /* NSStoryboard.Name + Identifier.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "NSStoryboard.Name + Identifier.swift"; sourceTree = "<group>"; };
7980
FCF5AD692200005D004609F7 /* NSObject + reuseIdentifier.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "NSObject + reuseIdentifier.swift"; sourceTree = "<group>"; };
80-
FCF5AD6B220003F2004609F7 /* NSViewController + create.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "NSViewController + create.swift"; sourceTree = "<group>"; };
81+
FCF5AD6B220003F2004609F7 /* Controllable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Controllable.swift; sourceTree = "<group>"; };
8182
FCF5AD6D220004AE004609F7 /* LicenseViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LicenseViewController.swift; sourceTree = "<group>"; };
83+
FCF5AD6F220084AE004609F7 /* LicenseWindowController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LicenseWindowController.swift; sourceTree = "<group>"; };
8284
/* End PBXFileReference section */
8385

8486
/* Begin PBXFrameworksBuildPhase section */
@@ -121,7 +123,7 @@
121123
FCF5AD6521FFF606004609F7 /* NSNotification.Name + Custom.swift */,
122124
FCF5AD6722000026004609F7 /* NSStoryboard.Name + Identifier.swift */,
123125
FCF5AD692200005D004609F7 /* NSObject + reuseIdentifier.swift */,
124-
FCF5AD6B220003F2004609F7 /* NSViewController + create.swift */,
126+
FCF5AD6B220003F2004609F7 /* Controllable.swift */,
125127
);
126128
path = Extension;
127129
sourceTree = "<group>";
@@ -149,6 +151,7 @@
149151
FC1D978821F158E900766E3D /* PopOverManageController.swift */,
150152
FC1D978921F158EA00766E3D /* MainViewController.swift */,
151153
FCF5AD6D220004AE004609F7 /* LicenseViewController.swift */,
154+
FCF5AD6F220084AE004609F7 /* LicenseWindowController.swift */,
152155
);
153156
path = Controller;
154157
sourceTree = "<group>";
@@ -404,12 +407,13 @@
404407
8D0C753A21F27C5800EA6515 /* WKWebView + transparentBackground.swift in Sources */,
405408
8D60024A21F1210000663EE4 /* AppDelegate.swift in Sources */,
406409
FCF5AD6822000026004609F7 /* NSStoryboard.Name + Identifier.swift in Sources */,
407-
FCF5AD6C220003F2004609F7 /* NSViewController + create.swift in Sources */,
410+
FCF5AD6C220003F2004609F7 /* Controllable.swift in Sources */,
408411
8D56EFB421F25FEA00478B70 /* LoginItem.swift in Sources */,
409412
FCF5AD6A2200005D004609F7 /* NSObject + reuseIdentifier.swift in Sources */,
410413
FC1D978B21F158EA00766E3D /* PopOverManageController.swift in Sources */,
411414
FC1D978C21F158EA00766E3D /* MainViewController.swift in Sources */,
412415
8D0C753D21F27CAA00EA6515 /* UserDefaults + Key.swift in Sources */,
416+
FCF5AD70220084AE004609F7 /* LicenseWindowController.swift in Sources */,
413417
FC1D978F21F160DA00766E3D /* Translator.swift in Sources */,
414418
FCF5AD6E220004AE004609F7 /* LicenseViewController.swift in Sources */,
415419
FCF5AD6421FFF5EB004609F7 /* Bundel + Identifier.swift in Sources */,

POP Translator/Base.lproj/Main.storyboard

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -774,7 +774,7 @@
774774
<!--Window Controller-->
775775
<scene sceneID="fQ5-ZR-jtQ">
776776
<objects>
777-
<windowController id="ow3-Hd-qE2" sceneMemberID="viewController">
777+
<windowController storyboardIdentifier="LicenseWindowController" id="ow3-Hd-qE2" customClass="LicenseWindowController" customModule="POP_Translator" customModuleProvider="target" sceneMemberID="viewController">
778778
<window key="window" title="Window" allowsToolTipsWhenApplicationIsInactive="NO" autorecalculatesKeyViewLoop="NO" releasedWhenClosed="NO" visibleAtLaunch="NO" frameAutosaveName="" animationBehavior="default" id="CY6-wH-sLR">
779779
<windowStyleMask key="styleMask" titled="YES" closable="YES" miniaturizable="YES" resizable="YES"/>
780780
<windowPositionMask key="initialPositionMask" leftStrut="YES" rightStrut="YES" topStrut="YES" bottomStrut="YES"/>
@@ -790,6 +790,7 @@
790790
</windowController>
791791
<customObject id="Kqp-JJ-g5G" userLabel="First Responder" customClass="NSResponder" sceneMemberID="firstResponder"/>
792792
</objects>
793+
<point key="canvasLocation" x="702" y="110"/>
793794
</scene>
794795
<!--View Controller-->
795796
<scene sceneID="OUC-0Q-kAU">
@@ -802,6 +803,7 @@
802803
</viewController>
803804
<customObject id="t6e-TX-SZ4" userLabel="First Responder" customClass="NSResponder" sceneMemberID="firstResponder"/>
804805
</objects>
806+
<point key="canvasLocation" x="702" y="606"/>
805807
</scene>
806808
</scenes>
807809
<resources>
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
//
2+
// LicenseWindowController.swift
3+
// POP Translator
4+
//
5+
// Created by 이광용 on 29/01/2019.
6+
// Copyright © 2019 GY. All rights reserved.
7+
//
8+
9+
import Cocoa
10+
11+
class LicenseWindowController: NSWindowController {
12+
13+
override func windowDidLoad() {
14+
super.windowDidLoad()
15+
16+
// Implement this method to handle any initialization after your window controller's window has been loaded from its nib file.
17+
}
18+
19+
}

POP Translator/Controller/PopOverManageController.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ class PopOverManageController: NSObject {
2929
button.action = #selector(togglePopover(_:))
3030
}
3131

32-
popover.contentViewController = MainViewController.create(storyboardName: .main)
32+
popover.contentViewController = MainViewController.controller(storyboardName: .main)
3333
popover.contentSize = NSSize(width: 400, height: 400*16/9)
3434

3535
eventMonitor = EventMonitor(mask: [.leftMouseDown, .rightMouseDown]) { [weak self] event in
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
//
2+
// NSViewController + create.swift
3+
// POP Translator
4+
//
5+
// Created by 이광용 on 28/01/2019.
6+
// Copyright © 2019 GY. All rights reserved.
7+
//
8+
9+
import Cocoa
10+
protocol Controllable: class {
11+
associatedtype Controller = Self
12+
static func controller(storyboardName: NSStoryboard.Name) -> Controller
13+
}
14+
15+
extension Controllable where Self: NSObject {
16+
static func controller(storyboardName: NSStoryboard.Name) -> Controller {
17+
let storyboard = NSStoryboard(name: storyboardName, bundle: nil)
18+
let identifier = NSStoryboard.SceneIdentifier(Self.reuseIdentifier)
19+
guard let controller = storyboard.instantiateController(withIdentifier: identifier) as? Controller else {
20+
fatalError("\(self.reuseIdentifier) is not found. Check \(storyboardName.description) ")
21+
}
22+
return controller
23+
}
24+
}
25+
26+
extension NSViewController: Controllable {
27+
}
28+
29+
extension NSWindowController: Controllable {
30+
}

POP Translator/Extension/NSViewController + create.swift

Lines changed: 0 additions & 20 deletions
This file was deleted.

0 commit comments

Comments
 (0)