gpt4 book ai didi

ios - 我如何检测 [在 App-delegate 中] 用户将 View 从标准 View 更改为放大 iphone 的显示设置

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:08:43 24 4
gpt4 key购买 nike

据我所知,当我们在标准 View 和缩放 View 之间切换时,iphone 会在后台重新启动。如果是全新安装,我在 didFinishLaunchingWithOptions 方法中有一些代码用于清除钥匙串(keychain)。现在,每当我切换 View [标准到缩放]时,iOs 都会将其视为全新安装并清除钥匙串(keychain),从而使我的应用程序崩溃。无论如何在代码中知道 View 已更改,以便我可以停止应用程序重置钥匙串(keychain)。这是代码片段:

func application(_ application: UIApplication, didFinishLaunchingWithOptions 
launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {

//clear keychain for every fresh install
if !Foundation.UserDefaults.standard.bool(forKey: Keys.kIsFreshInstall) {

//delete keychain
print("clearing keychain")
EMKeychainUtil.clearKeychain()

// update the flag indicator
Foundation.UserDefaults.standard.set(true, forKey:Keys.kIsFreshInstall)
}

return true
}

更新:

每当设备重新启动时,UserDefaults 都不会被重置。

我的项目中有一段代码首先在内部清除 UserDefaults 数据,然后检查钥匙串(keychain)清除,因此问题就在那里。

最佳答案

在你的 appDelegate 中监控 UIScreen.mainScreen.nativeScale 属性(不是 scale)

的。 scale 将保持不变,但 nativeScale 将随着缩放因子的设置而上升/下降

至于观察它:KVO 将无法工作,因为在更改缩放设置时任何应用程序都会被杀死。如果需要,您可能必须坚持下去

关于ios - 我如何检测 [在 App-delegate 中] 用户将 View 从标准 View 更改为放大 iphone 的显示设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45412740/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com