我正在开发iOS键盘扩展程序。它工作正常,但如果我最小化任何当前的应用程序并在另一个应用程序中打开键盘,它使用的运行时内存几乎加倍。
为了更好地解释它,让我举个例子。
假设我在" Notes"中打开了键盘。应用程序,大约需要15 MB(首次启动)。现在,如果我最小化" Notes"并在#34; Safari"中打开键盘,内存为21 MB。
所以,我的问题是,如果运行它的应用程序被最小化,有没有办法解雇键盘?
感谢任何帮助。感谢
答案 0 :(得分:0)
您可以注册NSExtensionHostWillEnterBackground
/ NSExtensionHostWillResignActive
通知,并将扩展上下文对象与您的UIInputViewController
扩展上下文对象进行比较,以查看任何单个输入视图控制器的主机应用程序正在消失。
话虽如此,听起来你正在泄漏你的UIInputViewController
子类,或至少它的一些内容。
您应该分析您的键盘扩展以防止泄漏/堆增长,并确保在输入视图被隐藏的时候释放一个键盘实例所需的任何资源。
答案 1 :(得分:-1)
在 AppDelegate.m :
中- (void)applicationDidEnterBackground:(UIApplication *)application{
[self.window endEditing:YES];
}