Skip to content

Commit 895365f

Browse files
committed
v1.2
v1.2
1 parent ff78d43 commit 895365f

File tree

5 files changed

+160
-59
lines changed

5 files changed

+160
-59
lines changed

J2K-saver/j2k-saver/SaverView.swift

Lines changed: 156 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -9,74 +9,172 @@
99
import Foundation
1010
import ScreenSaver
1111

12-
let SCREEN_W = NSScreen.main?.frame.size.width
13-
let SCREEN_H = NSScreen.main?.frame.size.height
14-
1512
final class SaverView: ScreenSaverView {
1613

1714
let jikeY = NSColor(red:1, green:0.894, blue:0.066, alpha:1.00) // FFE411
1815

16+
let ratio: CGFloat = 0.618
17+
1918
let canDoText = NSTextField()
2019
let daliyText = NSTextField()
21-
let dateNumText = NSTextField()
2220
let sdfText = NSTextField()
2321

22+
let dateNumText = NSView()
23+
let dateNum_h = NSTextField()
24+
let dateNum_m = NSTextField()
25+
let dateNum_s = NSTextField()
26+
27+
let lineOne = NSView()
28+
let lineTwo = NSView()
29+
2430
override init!(frame: NSRect, isPreview: Bool) {
2531
super.init(frame: frame, isPreview: isPreview)
2632

2733

2834

2935
}
3036

31-
func initUI () {
32-
33-
canDoText.frame = NSRect.init(x: 0, y: SCREEN_H! - 280, width: SCREEN_W!, height: 80)
34-
canDoText.isEditable = false
35-
canDoText.isBordered = false
36-
canDoText.drawsBackground = false
37-
canDoText.font = NSFont.systemFont(ofSize: 60)
38-
canDoText.textColor = jikeY
39-
canDoText.alignment = .center
40-
self.addSubview(canDoText)
41-
42-
daliyText.frame = NSRect.init(x: 0, y: SCREEN_H! - 340, width: SCREEN_W!, height: 50)
43-
daliyText.isEditable = false
44-
daliyText.isBordered = false
45-
daliyText.drawsBackground = false
46-
daliyText.font = NSFont.systemFont(ofSize: 30)
47-
daliyText.textColor = jikeY
48-
daliyText.alignment = .center
49-
self.addSubview(daliyText)
50-
51-
dateNumText.frame = NSRect.init(x: (SCREEN_W! - 770) / 2 + 10, y: SCREEN_H! - 520, width: 770, height: 200)
52-
dateNumText.isEditable = false
53-
dateNumText.isBordered = false
54-
dateNumText.drawsBackground = false
55-
dateNumText.font = NSFont.systemFont(ofSize: 180)
56-
dateNumText.textColor = jikeY
57-
dateNumText.alignment = .left
58-
self.addSubview(dateNumText)
59-
60-
let lineOne = NSView.init(frame: NSRect.init(x: 300, y: SCREEN_H! - 550, width: SCREEN_W! - 600, height: 4))
61-
lineOne.wantsLayer = true
62-
lineOne.layer?.setNeedsDisplay()
63-
lineOne.layer?.backgroundColor = jikeY.cgColor
64-
self.addSubview(lineOne)
65-
66-
let lineTwo = NSView.init(frame: NSRect.init(x: 300, y: SCREEN_H! - 555, width: SCREEN_W! - 600, height: 1))
67-
lineTwo.wantsLayer = true
68-
lineTwo.layer?.setNeedsDisplay()
69-
lineTwo.layer?.backgroundColor = jikeY.cgColor
70-
self.addSubview(lineTwo)
71-
72-
sdfText.frame = NSRect.init(x: 300, y: SCREEN_H! - 800, width: SCREEN_W! - 600, height: 200)
73-
sdfText.isEditable = false
74-
sdfText.isBordered = false
75-
sdfText.drawsBackground = false
76-
sdfText.font = NSFont.systemFont(ofSize: 40)
77-
sdfText.textColor = jikeY
78-
sdfText.alignment = .center
79-
self.addSubview(sdfText)
37+
func initUI (_ rect: NSRect) {
38+
39+
if (rect.size.width < 300 && rect.size.height < 200) {
40+
// 此时为在设置中的预览窗口 296 * 184
41+
let width = rect.size.width
42+
let height = rect.size.height
43+
44+
let tipTitle = NSTextField()
45+
tipTitle.frame = NSRect.init(x: width * 0.05, y: height * 0.618 + 10, width: width * 0.9, height: 30)
46+
tipTitle.isEditable = false
47+
tipTitle.isBordered = false
48+
tipTitle.drawsBackground = false
49+
tipTitle.font = NSFont.systemFont(ofSize: 20)
50+
tipTitle.textColor = jikeY
51+
tipTitle.alignment = .center
52+
tipTitle.stringValue = "即刻黄历saver版"
53+
self.addSubview(tipTitle)
54+
55+
let tipLine = NSView.init(frame: NSRect.init(x: width * 0.05, y: height * 0.618, width: width * 0.9, height: 1))
56+
tipLine.wantsLayer = true
57+
tipLine.layer?.setNeedsDisplay()
58+
tipLine.layer?.backgroundColor = jikeY.cgColor
59+
self.addSubview(tipLine)
60+
61+
let tipText = NSTextField()
62+
tipText.frame = NSRect.init(x: width * 0.05, y: 10, width: width * 0.9, height: height * 0.618 - 20)
63+
tipText.isEditable = false
64+
tipText.isBordered = false
65+
tipText.drawsBackground = false
66+
tipText.font = NSFont.systemFont(ofSize: 12)
67+
tipText.textColor = jikeY
68+
tipText.alignment = .left
69+
tipText.stringValue = "1.请在一起下载到的 j2k.app(dock工具) 中登录即刻账号以获得每日运势和即友金句\n2.请勿点击下面的 '屏幕保护程序选项...' 按钮"
70+
self.addSubview(tipText)
71+
72+
} else {
73+
// 多屏幕下通过制定到当前window去取当前的窗口的尺寸
74+
let width: CGFloat = (self.window?.screen?.frame.size.width)!
75+
let height: CGFloat = (self.window?.screen?.frame.size.height)!
76+
77+
let showWith = width * ratio
78+
let widthPadding = width * (1 - ratio) / 2
79+
let lineHeight = height * (1 - ratio)
80+
canDoText.frame = NSRect.init(x: widthPadding, y: lineHeight + 280, width: showWith, height: 80)
81+
canDoText.isEditable = false
82+
canDoText.isBordered = false
83+
canDoText.drawsBackground = false
84+
canDoText.font = NSFont.systemFont(ofSize: 60)
85+
canDoText.textColor = jikeY
86+
canDoText.alignment = .center
87+
self.addSubview(canDoText)
88+
89+
daliyText.frame = NSRect.init(x: widthPadding, y: lineHeight + 220, width: showWith, height: 50)
90+
daliyText.isEditable = false
91+
daliyText.isBordered = false
92+
daliyText.drawsBackground = false
93+
daliyText.font = NSFont.systemFont(ofSize: 30)
94+
daliyText.textColor = jikeY
95+
daliyText.alignment = .center
96+
self.addSubview(daliyText)
97+
98+
99+
100+
dateNumText.frame = NSRect.init(x: widthPadding, y: lineHeight + 30, width: showWith, height: 200)
101+
102+
let leftPadding = ( showWith - 840 ) / 2
103+
104+
dateNum_h.frame = NSRect.init(x: leftPadding, y: 0, width: 240, height: 200)
105+
dateNum_h.isEditable = false
106+
dateNum_h.isBordered = false
107+
dateNum_h.drawsBackground = false
108+
dateNum_h.font = NSFont.systemFont(ofSize: 180)
109+
dateNum_h.textColor = jikeY
110+
dateNum_h.alignment = .center
111+
dateNumText.addSubview(dateNum_h)
112+
113+
let dateSignOne = NSTextField()
114+
dateSignOne.frame = NSRect.init(x: leftPadding + 240, y: 0, width: 60, height: 200)
115+
dateSignOne.isEditable = false
116+
dateSignOne.isBordered = false
117+
dateSignOne.drawsBackground = false
118+
dateSignOne.font = NSFont.systemFont(ofSize: 180)
119+
dateSignOne.textColor = jikeY
120+
dateSignOne.alignment = .center
121+
dateSignOne.stringValue = ":"
122+
dateNumText.addSubview(dateSignOne)
123+
124+
dateNum_m.frame = NSRect.init(x: leftPadding + 300, y: 0, width: 240, height: 200)
125+
dateNum_m.isEditable = false
126+
dateNum_m.isBordered = false
127+
dateNum_m.drawsBackground = false
128+
dateNum_m.font = NSFont.systemFont(ofSize: 180)
129+
dateNum_m.textColor = jikeY
130+
dateNum_m.alignment = .center
131+
dateNumText.addSubview(dateNum_m)
132+
133+
let dateSignTwo = NSTextField()
134+
dateSignTwo.frame = NSRect.init(x: leftPadding + 540, y: 0, width: 60, height: 200)
135+
dateSignTwo.isEditable = false
136+
dateSignTwo.isBordered = false
137+
dateSignTwo.drawsBackground = false
138+
dateSignTwo.font = NSFont.systemFont(ofSize: 180)
139+
dateSignTwo.textColor = jikeY
140+
dateSignTwo.alignment = .center
141+
dateSignTwo.stringValue = ":"
142+
dateNumText.addSubview(dateSignTwo)
143+
144+
dateNum_s.frame = NSRect.init(x: leftPadding + 600, y: 0, width: 240, height: 200)
145+
dateNum_s.isEditable = false
146+
dateNum_s.isBordered = false
147+
dateNum_s.drawsBackground = false
148+
dateNum_s.font = NSFont.systemFont(ofSize: 180)
149+
dateNum_s.textColor = jikeY
150+
dateNum_s.alignment = .center
151+
dateNumText.addSubview(dateNum_s)
152+
153+
self.addSubview(dateNumText)
154+
155+
lineOne.frame = NSRect.init(x: widthPadding, y: lineHeight + 5, width: showWith, height: 4)
156+
lineOne.wantsLayer = true
157+
lineOne.layer?.setNeedsDisplay()
158+
lineOne.layer?.backgroundColor = jikeY.cgColor
159+
self.addSubview(lineOne)
160+
161+
lineTwo.frame = NSRect.init(x: widthPadding, y: lineHeight, width: showWith, height: 1)
162+
lineTwo.wantsLayer = true
163+
lineTwo.layer?.setNeedsDisplay()
164+
lineTwo.layer?.backgroundColor = jikeY.cgColor
165+
self.addSubview(lineTwo)
166+
167+
sdfText.frame = NSRect.init(x: widthPadding, y: lineHeight - 250, width: showWith, height: 200)
168+
sdfText.isEditable = false
169+
sdfText.isBordered = false
170+
sdfText.drawsBackground = false
171+
sdfText.font = NSFont.systemFont(ofSize: 40)
172+
sdfText.textColor = jikeY
173+
sdfText.alignment = .center
174+
self.addSubview(sdfText)
175+
}
176+
177+
80178

81179

82180
}
@@ -163,7 +261,7 @@ final class SaverView: ScreenSaverView {
163261

164262
override func draw(_ rect: NSRect) {
165263
super.draw(rect)
166-
self.initUI()
264+
self.initUI(rect)
167265
self.initData()
168266
}
169267

@@ -212,7 +310,10 @@ final class SaverView: ScreenSaverView {
212310
let sec = theComponents.second! < 10 ? "0\(secStr)" : secStr
213311

214312
daliyText.stringValue = "\(year)\(mouth)\(day)\(week)"
215-
dateNumText.stringValue = "\(hour):\(min):\(sec)"
313+
dateNum_h.stringValue = "\(hour)"
314+
dateNum_m.stringValue = "\(min)"
315+
dateNum_s.stringValue = "\(sec)"
316+
216317
}
217318

218319
override var hasConfigureSheet: Bool {

README.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,9 @@
2020

2121
人家不想在屏保中做扫码登录了嘛
2222

23-
效果图大约是这样,macOS 没法截图屏保,我也很绝望啊
23+
4.28 修复了在大屏幕和多屏幕显示的BUG,现在效果图是这样(macOS 没法截图屏保)
2424

25-
<img src="./readSupport/saver.jpeg" width=400 height=300/>
25+
<img src="./readSupport/saver.jpeg" width=300 height=400/>
2626

2727
------
2828

@@ -37,13 +37,13 @@ star越多,我敲代码的手就越快[死不要脸求star]
3737
todo list:
3838

3939
1. 指定场景/定时弹出(hard)
40-
2. saver 的多显示器兼容问题
40+
2. ~~saver 的多显示器兼容问题~~
4141
3. saver 的 macOS 支持问题(修改工程的Deployment Target 到 10.11 ,依然反馈不支持,怀疑是低版本macOS对Swift 5 的支持问题,如果需要用OC或低版本Swift 重构的话,我可能不会处理这个问题)
4242
4. issues 反馈的崩溃问题跟踪
4343

4444
------
4545

46-
下载: [[点击下载]](https://github.com/Dawninest/jikeCalendar-macOS/releases/download/v2.0/J2K.zip)
46+
下载: [[点击下载]](https://github.com/Dawninest/jikeCalendar-macOS/releases/download/v1.2/J2K.zip) (v1.2)
4747

4848
要求macOS版本 10.11及以上
4949

readSupport/09.png

120 KB
Loading

readSupport/saver.jpeg

170 KB
Loading

0 commit comments

Comments
 (0)