Po pojawieniu się alarmu klawiatura zostaje odrzucona. Rozglądałem się wszędzie, ale nie znalazłem rozwiązań, aby klawiatura była widoczna. Po wyświetleniu alertu wydaje się, że pole tekstowe automatycznie rezygnuje z pierwszej odpowiedzi, ponieważ alarm jest prezentowany modalnie. W jaki sposób można utrzymać klawiaturę za tym alarmem, co oznacza, że pole tekstowe wciąż jest edytowane, nawet jeśli nie będzie możliwa interakcja?ZACHOWAĆ klawiaturę, gdy w Swift jest wyświetlany kontroler UIAlert?
13
A
Odpowiedz
21
Rozwiązanie to działa na mnie:
let rootViewController: UIViewController =
UIApplication.sharedApplication().windows.lastObject.rootViewController!!
rootViewController.presentViewController(alert, animated: true, completion: nil)
edit przez @galambalazs: Powodem jest to działa, ponieważ:
Można chwycić okno z aktualnym najwyższym poziomie i okiennej Przedstaw swój kontroler View wewnątrz tego Okno (co czyni go najlepszym kontrolerem View w górnej części Okno).
UIApplication.sharedApplication().windows
okien w tablicy są uporządkowane od tyłu do przodu przez poziom okiennej;
tym samym ostatnie okno w tablicy znajduje się na górze wszystkich innych okien aplikacji.
Również może chcesz ustawić tintColor tego okna tak, że pasuje aplikacje globalne tintColor.
UIWindow *topWindow = [UIApplication sharedApplication].windows.lastObject;
// we inherit the main window's tintColor because topWindow may not have the same
topWindow.tintColor = [UIApplication sharedApplication].delegate.window.tintColor;
0
Dla Swift 3 i iOS11
if let alertWindow = UIApplication.shared.windows.last, alertWindow.windowLevel == 10000001.0 // If keyboard is open
{ // Make sure keyboard is open
alertWindow.rootViewController?.present(alertController, animated: true, completion: nil)
}
else
{
viewController?.present(alertController, animated: true, completion: nil)
}
Powiązane problemy
- 1. UIPresentationController zmienia rozmiar, gdy wyświetlany jest inny kontroler widoku.
- 2. Jak ustawić ostrość i pokazać miękką klawiaturę, gdy EditText jest wyświetlany na pasku akcji?
- 3. Android - Potrzebuje oddzwonienia, gdy wyświetlany jest widok
- 4. Jak sprawdzić, czy aktualnie wyświetlany jest kontroler UIViewController?
- 5. Swift IBDesignable widok nie jest wyświetlany w serii ujęć
- 6. Co oznacza "~ (END)", gdy wyświetlany jest w terminalu?
- 7. Komunikat wyświetlany w AngularJS, gdy obiekt jest pusty we wzmacniaczu
- 8. Podgląd podrzędny NSTextView nie jest wyświetlany, gdy drawsBackground = false
- 9. Wyłączenie wszystkich dotknięć, gdy wskaźnik ładowania jest wyświetlany
- 10. R shiny: wyświetlany jest komunikat "ładowanie ...", gdy funkcja działa
- 11. Jak ukryć klawiaturę w trakcie testowania aplikacji Swift UI
- 12. Swift Modal View Kontroler z przezroczystym tłem
- 13. szuflada nawigacji ukryj klawiaturę, gdy onDrawerOpened
- 14. Układ mojej aplikacji jest zniszczony, gdy wyświetlany jest pasek stanu połączenia lub punktu aktywnego.
- 15. Jak ukryć klawiaturę, gdy aktywność się rozpoczyna
- 16. Xcode: Wykrywanie gdy kontroler nawigacyjny realizowane „Wstecz” jest wciśnięty
- 17. Kontroler ASP.Net MVC 4 zawiesza się, gdy używany jest async.
- 18. Pasek wyskoku nie jest wyświetlany
- 19. UIBarButtonItem Obraz nie jest wyświetlany, a zamiast niego wyświetlany jest biały prostokąt w rozmiarze obrazu, dlaczego?
- 20. swift: pokaż kolejny kontroler widoku po przesunięciu w górę w pierwszym kontroler widoku
- 21. Jak zamknąć kontroler UIAlertController bez żadnych działań w SWIFT?
- 22. rootViewController ustawiony w Storyboard nie jest wyświetlany przy uruchomieniu aplikacji
- 23. NSTimer nie odpala, gdy NSMenu jest otwarte w Swift
- 24. Pierwsze lokalne powiadomienia pokazać podczas gdy aplikacja jest w planie Swift 3
- 25. Tekst jest wyświetlany z opóźnieniem
- 26. MKMapView awarii aplikacji, gdy kontroler widoku pojawiło
- 27. Trudności z centrowaniem kontrolera widoku, gdy jest wyświetlany jako arkusz formularza
- 28. Nagłówek UICollectionView nie jest wyświetlany
- 29. Przycisk Anuluj nie jest wyświetlany w UISearchBar
- 30. „viewWillTransitionToSize” nie jest wywoływana w iOS 9, gdy kontroler widoku jest przedstawione modalne
Wygląda na to jest za pomocą okna pasek stanu jest, by przedstawić powiadomienie kontroler, prawda? – ninjudd
Właściwie to się myliłem. Drugie okno w 'UIAppplication.sharedApplication(). Windows' jest UITextEffectsWindow. – ninjudd
Po dalszych badaniach odkryłem, że UITextEffectsWindow jest tam, gdzie znajduje się widok klawiatury (lub UIViewController inputAccessoryView). To drugie okno będzie istniało tylko wtedy, gdy wyświetlona jest klawiatura. http://www.fantageek.com/1317/uiwindow-in-ios/ – ninjudd