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