-
Notifications
You must be signed in to change notification settings - Fork 6
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
変換候補と注釈のフォントサイズ変更を追加 #142
変換候補と注釈のフォントサイズ変更を追加 #142
Conversation
ありがとうございます。
|
@@ -119,6 +119,10 @@ final class SettingsViewModel: ObservableObject { | |||
@Published var showAnnotation: Bool | |||
/// インラインで表示する変換候補の数。 | |||
@Published var inlineCandidateCount: Int | |||
/// 変換候補のフォントサイズ | |||
@Published var candidatesFontSize: Int = 13 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
memo: ぐぐっても見当たらなかったのでswift replで確認。
Welcome to Apple Swift version 5.10 (swiftlang-5.10.0.13 clang-1500.3.9.4).
Type :help for assistance.
1> import AppKit
2> NSFont.preferredFont(forTextStyle: .body).pointSize
$R1: CoreFoundation.CGFloat = 13
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
これは自分もググってわからなかなったですが、目で見て(ぇ)だいたい同じくらいということで13
を初期値にしました。
|
@@ -24,6 +24,18 @@ struct GeneralView: View { | |||
} | |||
} | |||
} | |||
Section { | |||
Picker("Candidates font size", selection: $settingsViewModel.candidatesFontSize) { | |||
ForEach(6..<31) { count in |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
29で終わりにするより30で終わりのほうが自然かと思って1増やしました。
Swiftでは範囲を 6...30
のようにも定義できるんですが、それは ClosedRange<Int>
となってしまってForEachは受け取ってくれないようでした。
Section { | ||
Picker("Candidates font size", selection: $settingsViewModel.candidatesFontSize) { | ||
ForEach(6..<31) { count in | ||
Text("\(count)").tag(count) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
13が指定されているとき、表示上19になっていたのでtagで指定するようにします。
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
なるほど 🙏
@@ -137,6 +141,8 @@ final class SettingsViewModel: ObservableObject { | |||
} | |||
showAnnotation = UserDefaults.standard.bool(forKey: UserDefaultsKeys.showAnnotation) | |||
inlineCandidateCount = UserDefaults.standard.integer(forKey: UserDefaultsKeys.inlineCandidateCount) | |||
candidatesFontSize = UserDefaults.standard.integer(forKey: UserDefaultsKeys.candidatesFontSize) | |||
annotationFontSize = UserDefaults.standard.integer(forKey: UserDefaultsKeys.annotationFontSize) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
macSKKAppでデフォルト値を保存してそちらから採用するようにします。
) | ||
.padding(EdgeInsets(top: 16, leading: 12, bottom: 16, trailing: 8)) | ||
.frame(width: Self.annotationPopupWidth, alignment: .topLeading) | ||
.frame(maxHeight: 200) | ||
.frame(maxHeight: max(200, CGFloat(words.count) * candidates.candidatesLineHeight + Self.footerHeight)) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
変換候補のフォントサイズが大きいとき注釈表示の高さが小さくなってしまうので変換候補パネルの高さと最低保証とします。
ただし変換候補が1つとか2つしかないときには変換候補パネルの高さに合わせるとそれはそれで狭いので200は確保します。
.scrollDisabled(true) | ||
.frame(width: candidates.minWidth, height: CGFloat(words.count) * Self.lineHeight) | ||
.frame(width: candidates.minWidth, height: CGFloat(words.count) * candidates.candidatesLineHeight) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ここでSelf.lineHeightを使っているとフォントサイズが大きいときに全部の候補を表示できないため修正。
Pull Requestありがとうございました。 |
変換候補と注釈はもともとの設定(SwiftUIのデフォルト)のフォントサイズが少し小さめに感じたので、これらのフォントサイズ変更機能を作りました。
変換候補と注釈
設定画面