SwiftUI // Fix the wrong term "onChange" to "didChange".

This commit is contained in:
ShikiSuen 2024-02-03 14:07:47 +08:00
parent 77f39023ab
commit a448c4cf7a
8 changed files with 24 additions and 22 deletions

View File

@ -101,12 +101,12 @@ public struct VwrSettingsPaneBehavior: View {
UserDef.kShareAlphanumericalModeStatusAcrossClients.bind($shareAlphanumericalModeStatusAcrossClients).render()
VStack(alignment: .leading) {
UserDef.kTogglingAlphanumericalModeWithLShift.bind(
$togglingAlphanumericalModeWithLShift.onChange {
$togglingAlphanumericalModeWithLShift.didChange {
SessionCtl.theShiftKeyDetector.toggleWithLShift = togglingAlphanumericalModeWithLShift
}
).render()
UserDef.kTogglingAlphanumericalModeWithRShift.bind(
$togglingAlphanumericalModeWithRShift.onChange {
$togglingAlphanumericalModeWithRShift.didChange {
SessionCtl.theShiftKeyDetector.toggleWithRShift = togglingAlphanumericalModeWithRShift
}
).render()

View File

@ -68,7 +68,7 @@ public struct VwrSettingsPaneCandidates: View {
UserDef.kUseHorizontalCandidateList.bind($useHorizontalCandidateList).render()
.pickerStyle(RadioGroupPickerStyle())
UserDef.kCandidateListTextSize.bind(
$candidateListTextSize.onChange {
$candidateListTextSize.didChange {
guard !(12 ... 196).contains(candidateListTextSize) else { return }
candidateListTextSize = max(12, min(candidateListTextSize, 196))
}
@ -132,7 +132,7 @@ private struct VwrSettingsPaneCandidates_SelectionKeys: View {
var body: some View {
UserDef.kCandidateKeys.bind(
$candidateKeys.onChange {
$candidateKeys.didChange {
let value = candidateKeys
let keys = value.trimmingCharacters(in: .whitespacesAndNewlines).lowercased().deduplicated
// Start Error Handling.

View File

@ -124,7 +124,7 @@ public struct VwrSettingsPaneCassette: View {
.settingsDescription()
Toggle(
LocalizedStringKey("Enable cassette mode, suppressing phonabet input"),
isOn: $cassetteEnabled.onChange {
isOn: $cassetteEnabled.didChange {
if cassetteEnabled, !LMMgr.checkCassettePathValidity(cassettePath) {
if let window = CtlSettingsUI.shared?.window {
IMEApp.buzz()

View File

@ -148,7 +148,7 @@ public struct VwrSettingsPaneDictionary: View {
)
.settingsDescription()
UserDef.kShouldAutoReloadUserDataFiles.bind(
$shouldAutoReloadUserDataFiles.onChange {
$shouldAutoReloadUserDataFiles.didChange {
if shouldAutoReloadUserDataFiles {
LMMgr.initUserLangModels()
}
@ -160,23 +160,23 @@ public struct VwrSettingsPaneDictionary: View {
Section {
UserDef.kUseExternalFactoryDict.bind(
$useExternalFactoryDict.onChange {
$useExternalFactoryDict.didChange {
LMMgr.connectCoreDB()
}
).render()
UserDef.kCNS11643Enabled.bind(
$cns11643Enabled.onChange {
$cns11643Enabled.didChange {
LMMgr.syncLMPrefs()
}
).render()
UserDef.kSymbolInputEnabled.bind(
$symbolInputEnabled.onChange {
$symbolInputEnabled.didChange {
LMMgr.syncLMPrefs()
}
).render()
UserDef.kFetchSuggestionsFromUserOverrideModel.bind($fetchSuggestionsFromUserOverrideModel).render()
UserDef.kPhraseReplacementEnabled.bind(
$phraseReplacementEnabled.onChange {
$phraseReplacementEnabled.didChange {
LMMgr.syncLMPrefs()
if phraseReplacementEnabled {
LMMgr.loadUserPhraseReplacement()

View File

@ -89,7 +89,7 @@ public struct VwrSettingsPaneGeneral: View {
Section {
UserDef.kReadingNarrationCoverage.bind(
$readingNarrationCoverage.onChange {
$readingNarrationCoverage.didChange {
SpeechSputnik.shared.refreshStatus()
}
).render()
@ -99,14 +99,14 @@ public struct VwrSettingsPaneGeneral: View {
UserDef.kClassicHaninKeyboardSymbolModeShortcutEnabled
.bind($classicHaninKeyboardSymbolModeShortcutEnabled).render()
UserDef.kUseSCPCTypingMode.bind(
$useSCPCTypingMode.onChange {
$useSCPCTypingMode.didChange {
guard useSCPCTypingMode else { return }
LMMgr.loadSCPCSequencesData()
}
).render()
if Date.isTodayTheDate(from: 0401) {
UserDef.kShouldNotFartInLieuOfBeep.bind(
$shouldNotFartInLieuOfBeep.onChange { onFartControlChange() }
$shouldNotFartInLieuOfBeep.didChange { onFartControlChange() }
).render()
}
}

View File

@ -36,14 +36,14 @@ public struct VwrSettingsPaneOutput: View {
Form {
Section {
UserDef.kChineseConversionEnabled.bind(
$chineseConversionEnabled.onChange {
$chineseConversionEnabled.didChange {
if chineseConversionEnabled, shiftJISShinjitaiOutputEnabled {
shiftJISShinjitaiOutputEnabled = false
}
}
).render()
UserDef.kShiftJISShinjitaiOutputEnabled.bind(
$shiftJISShinjitaiOutputEnabled.onChange {
$shiftJISShinjitaiOutputEnabled.didChange {
if chineseConversionEnabled, shiftJISShinjitaiOutputEnabled {
chineseConversionEnabled = false
}

View File

@ -195,7 +195,7 @@ public struct VwrPhraseEditorUI: View {
public var body: some View {
VStack(spacing: 4) {
HStack {
Picker("", selection: $selInputMode.onChange { dropDownMenuDidChange() }) {
Picker("", selection: $selInputMode.didChange { dropDownMenuDidChange() }) {
switch currentIMEInputMode {
case .imeModeCHS:
Text(Shared.InputMode.imeModeCHS.localizedDescription).tag(Shared.InputMode.imeModeCHS)
@ -215,7 +215,7 @@ public struct VwrPhraseEditorUI: View {
}
}
.labelsHidden()
Picker("", selection: $selUserDataType.onChange { dropDownMenuDidChange() }) {
Picker("", selection: $selUserDataType.didChange { dropDownMenuDidChange() }) {
Text(vChewingLM.ReplacableUserDataType.thePhrases.localizedDescription).tag(
vChewingLM.ReplacableUserDataType.thePhrases)
Text(vChewingLM.ReplacableUserDataType.theFilter.localizedDescription).tag(
@ -251,7 +251,9 @@ public struct VwrPhraseEditorUI: View {
.disabled(selInputMode == .imeModeNULL || isLoading)
.frame(minWidth: 320, minHeight: 240)
.onChange(of: fileChangeIndicator.id) { _ in
if Self.autoReloadExternalModifications { update() }
Task {
if Self.autoReloadExternalModifications { update() }
}
}
}
@ -267,7 +269,7 @@ public struct VwrPhraseEditorUI: View {
if selUserDataType == .thePhrases {
TextField(
lblAddPhraseTag3,
text: $txtAddPhraseField3.onChange {
text: $txtAddPhraseField3.didChange {
guard let weightVal = Double(txtAddPhraseField3) else { return }
if weightVal > 0 { txtAddPhraseField3 = "" }
}
@ -288,7 +290,7 @@ public struct VwrPhraseEditorUI: View {
HStack {
Toggle(
LocalizedStringKey("This editor only: Auto-reload modifications happened outside of this editor"),
isOn: $selAutoReloadExternalModifications.onChange {
isOn: $selAutoReloadExternalModifications.didChange {
Self.autoReloadExternalModifications = selAutoReloadExternalModifications
}
)

View File

@ -8,13 +8,13 @@
import SwiftUI
// MARK: - Add "onChange" support.
// MARK: - Add "didChange" support to bindings.
// Ref: https://mjeld.com/swiftui-macos-10-15-toggle-onchange/
@available(macOS 10.15, *)
public extension Binding {
func onChange(_ action: @escaping () -> Void) -> Binding {
func didChange(_ action: @escaping () -> Void) -> Binding {
Binding(
get: {
wrappedValue