- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在 textViewDidBeginEditing 中,我使用 UIAlertController 显示警报。警报显示在键盘之前(在模拟器上)。
如何在弹出警报之前显示键盘?
func textViewDidBeginEditing(_ textView: UITextView) {
if self.balance <= 0 {
let alert = UIAlertController(title: "Balance Low", message: "Your balance is low.", preferredStyle: UIAlertControllerStyle.alert)
let cancelAction = UIAlertAction(title: "Cancel", style: UIAlertActionStyle.cancel) { (cancel) in
}
let okAction = UIAlertAction(title: "Buy", style: UIAlertActionStyle.default) { (action) in
self.segueToBuy()
}
alert.addAction(cancelAction)
alert.addAction(okAction)
self.present(alert, animated: true, completion: nil)
}
}
最佳答案
请使用 DispatchQueue.main.asyncAfter
在一定延迟后,每当用户在 UITextView
中键入文本时显示警报。
func asyncAfter(deadline: DispatchTime, qos: DispatchQoS = default, flags: DispatchWorkItemFlags = default, execute work: @escaping @convention(block) () -> Void)
Delcare 私有(private)实例变量,用于在本地显示警报。
var showAlert = true
在 textViewDidBeginEditing
中尝试下面显示的代码:
func textViewDidBeginEditing(_ textView: UITextView) {
if self.showAlert && self.balance <= 0 {
DispatchQueue.main.asyncAfter(deadline: .now() + 1) {
textView.endEditing(true)
let alert = UIAlertController(title: "Balance Low", message: "Your balance is low.", preferredStyle: UIAlertController.Style.alert)
let cancelAction = UIAlertAction(title: "Cancel", style: UIAlertAction.Style.cancel) { (cancel) in
self.showAlert = false
textView.becomeFirstResponder()
}
let okAction = UIAlertAction(title: "Buy", style: UIAlertAction.Style.default) { (action) in
textView.endEditing(true)
self.segueToBuy()
}
alert.addAction(cancelAction)
alert.addAction(okAction)
self.present(alert, animated: true, completion: nil)
}
}
}
关于ios - 如何在 UITextView textViewDidBeginEditing 中显示键盘后显示警报,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52878515/
是否有一种标准方法可以确保键盘出现在屏幕上并且不会消失?我已将我的 textView 设置为第一响应者,以确保键盘显示,但我希望文本出现在 textView 中(让用户知道要输入什么字段),当我成为第
当我在 ViewController 中编辑 textview 时,我似乎无法调用我的 textViewDidBeginEditing 函数。 这是我的自定义单元格的代码: class NoteDet
在 textViewDidBeginEditing 中,我使用 UIAlertController 显示警报。警报显示在键盘之前(在模拟器上)。 如何在弹出警报之前显示键盘? func textVi
我是 Objective C 新手。我要做的很简单,就是在文本字段聚焦时为键盘设置动画,在没有聚焦时收缩键盘。我已经按照其他一些教程了解如何逐步设置此步骤,但它不起作用。当 textfeld 成为焦点
在 textViewDidBeginEditing 中,我正在做一些检查以显示 Alert。我的问题是键盘和警报同时出现。我不想在显示警报时显示键盘。当我必须显示警报时,是否可以停止在 textVie
我看过其他关于 UITextView 委托(delegate)的主题,但似乎无法找到我的问题出处。这是我的代码,但是当我修改我的 UITextView 时,没有任何反应,也没有调用 textViewD
我的 ViewController 中有以下观察者。 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector
我是一名优秀的程序员,十分优秀!