gpt4 book ai didi

ios - setFont 没有按预期工作

转载 作者:行者123 更新时间:2023-11-29 02:17:56 26 4
gpt4 key购买 nike

我的问题更多的是好奇

我试图让我的应用程序在用户更改 iOS 字体大小时做出响应。

为此,我将以下观察者放入 viewWillAppear 函数中:

[[NSNotificationCenter defaultCenter] addObserver : self selector : @selector(refreshTextFontSize:) name : UIContentSizeCategoryDidChangeNotification object : nil];

在我的 ViewController 中。

我的 refreshTextFontSize 函数是这样的:

- (void) refreshTextFontSize : (NSNotification*)notification
{
[[self textView] setFont : [UIFont preferredFontForTextStyle:UIFontTextStyleBody]];
}

(我的view是里面只有一个TextView的view,outlet名称是textView)

这不起作用。

当应用程序正在运行并且我在 iPhone 设置中更改 iOS 字体大小时,我的应用程序没有任何反应。

但是,如果我在 viewWillAppear 中手动调用 refreshTextFontSize 函数,一切正常。当应用程序初始化时,它带有正确的字体大小,当我在应用程序打开的情况下更改设置中的字体大小时,它也响应非常好。

所以,我的问题是:为什么我必须在 viewWillAppear 中调用 refreshTextFontSize 函数来使我的应用在我的应用运行时响应用户对 iOS 字体大小的更改已经开放?我不明白为什么我必须添加最后一行代码以使我的应用程序在打开时更改字体大小,因为 refreshTextFontSize 函数是自动调用的。 refreshTextFontSize 实际上,每次我更改 iOS 字体大小时都会被观察者调用。但是,如果我没有最后一行代码,它就不起作用。

不确定我是否解释清楚,但感谢您的帮助!

最佳答案

我可能是不正确的,但我认为这与 iOS 应用程序不在后台运行这一事实有关。确保您的应用程序在后台打开,但它不会运行任何代码。您可以要求获得一些权限,但我不认为任何权限都适用于更改字体。最好的办法是注册 UIApplicationDidBecomeActiveNotification 通知,然后更改字体。

希望这是有道理的。

关于ios - setFont 没有按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28532898/

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