Когда во время использования моего приложения получено SMS, я бы хотел, чтобы все открытые клавиатуры были закрыты. Как я могу сделать это из applicationWillResignActive в своем делегате приложения?
applicationWillResignActive убрать клавиатуру iPhone
Ответы (2)
Реализуйте код, подобный приведенному в этом ответе. Зарегистрируйте свои контроллеры представления для UIApplicationWillResignActiveNotification
. Когда уведомление сработает, вызовите resignFirstResponder
. Таким образом, вы избегаете жесткой связи между вашим UIApplicationDelegate
и вашим контроллером представления. Предполагая, что ваш контроллер представления имеет UITextField
с именем textField
:
- (void) applicationWillResign {
[self.textField resignFirstResponder];
}
- (void) viewDidLoad {
[[NSNotificationCenter defaultCenter]
addObserver:self
selector:@selector(applicationWillResign)
name:UIApplicationWillResignActiveNotification
object:NULL];
}
person
jluckyiv
schedule
04.11.2011
тогда как я могу отменить изменение, сделанное applicationWillResign? После того, как SMS закрыто, как я могу снова открыть клавиатуру?
- person eric.mitchell; 04.11.2011
[self.textField стал первым ответчиком]
- person jluckyiv; 04.11.2011
Да, но куда идет это заявление?
- person eric.mitchell; 04.11.2011
Я бы, наверное, поместил его в viewWillAppear в контроллере представления. Если вы хотите, вы можете добавить наблюдателя для UIApplicationDidBecomeActive в свой контроллер представления и создать метод в своем контроллере представления для обработки уведомления.
- person jluckyiv; 04.11.2011
Я не понял, что здесь вызывается UIApplicationDidBecomeActive. Спасибо!
- person eric.mitchell; 04.11.2011
Для реализации Swift 5 попробуйте это
override func viewDidLoad() {
super.viewDidLoad()
let notificationCenter = NotificationCenter.default
notificationCenter.addObserver(self, selector: #selector(appMovedToBackground), name: UIApplication.willResignActiveNotification, object: nil)
}
@objc func appMovedToBackground() {
print("App moved to background!")
}
Для получения дополнительной информации перейдите по ссылке https://www.hackingwithswift.com/example-code/system/how-to-detect-when-your-app-moves-to-the-background
person
Rusiru Boteju
schedule
25.10.2020