使用自定义UIWindow时第一响应者的问题

问题描述 投票:0回答:1

当使用自定义UIWindow来完成应用程序中的某个行为时,我在以编程方式设置第一个响应程序时遇到了问题,例如覆盖视图控制器的inputAccessoryViewtextField.becomeFirstResponder()

为了使UIWindow子类可见,我一直在使用:

window.makeKeyAndVisible()
window.isHidden = false
ios swift uiwindow
1个回答
0
投票

问题在于应用程序的关键窗口是试图成为第一响应者的窗口,因此如果您将自定义窗口设置为关键窗口(通过调用window.makeKeyAndVisible()),它将是iOS将要抓取的窗口。当它需要以编程方式调用第一个响应者。

为避免这种情况,只有在您确实需要它成为第一个响应者时才将其设置为关键窗口(例如,它是一个具有文本字段的窗口)。否则,仅设置window.isHidden = false就足以显示窗口。

// NOTE: Do not call makeKeyAndVisible() because that messes up with the main window's first responder
isHidden = false
© www.soinside.com 2019 - 2024. All rights reserved.