- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我试图获取键盘测量值,但在旋转过程中,我总是在打印部分遇到 2 个键盘测量到水平位置的通知和三个到垂直位置的通知。
override func viewDidLoad() {
super.viewDidLoad()
tabBarController?.tabBar.isHidden = true
collectionView?.backgroundColor = UIColor.white
collectionView?.register(ChatLogMessageCell.self, forCellWithReuseIdentifier: cellId)
collectionView?.alwaysBounceVertical = true
collectionView?.showsVerticalScrollIndicator = true
collectionView?.scrollIndicatorInsets = UIEdgeInsets(top: 0,left: 0,bottom: (tabBarController?.tabBar.frame.size.height)!,right: 0)
view.addSubview(messageInputContainerView)
view.addConstraintsWithFormat("H:|[v0]|", views: messageInputContainerView)
view.addConstraintsWithFormat("V:[v0(48)]|", views: messageInputContainerView)
setupInputComponents()
NotificationCenter.default.addObserver(self, selector: #selector(handleKeyboardNotification(notification:)), name: NSNotification.Name.UIKeyboardWillShow, object: nil)
}
deinit {
print("Remove NotificationCenter Deinit")
NotificationCenter.default.removeObserver(self)
}
func handleKeyboardNotification(notification: NSNotification) {
if let userInfo = notification.userInfo {
let keyboardFrame = (userInfo[UIKeyboardFrameEndUserInfoKey] as? NSValue)?.cgRectValue
print(keyboardFrame)
}
}
到底发生了什么:当我第一次点击 textField 时:只有一个字符串 -Optional((0.0, 451.0, 375.0, 216.0)) - 正如预期的那样。
然后当旋转过程发生时:有两个字符串 Optional((0.0, 213.0, 667.0, 162.0))可选((0.0, 213.0, 667.0, 162.0))
毕竟,当我将它恢复到垂直位置时:甚至会出现另外三个字符串:Optional((0.0, 667.0, 375.0, 0.0))可选((0.0,667.0,375.0,0.0))可选((0.0, 451.0, 375.0, 216.0))
在其他讨论中有人说“这是正常行为,因为键盘在旋转前下降,旋转后又上升”但我没有在文档和其他任何地方找到任何确认。为什么真的会发生?拜托,我真的很困惑(
最佳答案
您可以通过将 Int
设置为零来解决此问题,然后当用户弹出键盘时,将 Int
设置为 1(或其他一些数字),如下所示:
var keyBoardCount:Int = 0
func handleKeyboardNotification(notification: NSNotification) {
if keyBoardCount == 0 { //If the keyboard hasnt been raised, raise it.
if let userInfo = notification.userInfo {
let keyboardFrame = (userInfo[UIKeyboardFrameEndUserInfoKey] as? NSValue)?.cgRectValue
print(keyboardFrame)
keyBoardCount = 1 //once you raise the keyboard, set the counter to 1
}
}
}
然后,当用户接受输入的字符串(IE 完成编辑文本字段)时,将 keyBoardCount
设置回零以重置整个过程。
通过这样做,您可以防止函数的多次触发。
关于ios - keyboardwillshow 在水平旋转和垂直方向上被调用两次甚至三次(vert),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48561342/
我是 Vert.X 新手。 Vert.x 是否有内置的集中式过滤器?我的意思是您将在 J2EE 应用程序上使用的过滤器类型。 例如,所有页面都必须经过身份验证过滤器或类似的操作。 在 Vert.x 中
正在关注 similar question在 Spring 。我希望能够在路由器中获得响应。并进行响应刷新,这样我就可以在不延长 RTT 的情况下继续在服务器上工作 意思是,做一些类似 Spring
我正在我的一个工作线程中进行阻塞服务调用,并记录了警告。这是通过增加时间限制来“解决”的,但是,我更好奇如何读取日志行中线程的命名 - vert.x-worker-thread-3,5,main。完整
我是 vert.x 的新手。我不寻找代码片段/示例,因为 vert.x github 页面充满了它们。 我正在寻找一些事实和最佳实践。 我正在编写一个应用程序,其主要verticle是一个处理Rest
顶点中的 TCP 服务器/网络服务器和 HTTP 服务器有什么区别? 每个的用例是什么? 我尝试谷歌搜索并浏览了官方网站,他们都没有明确的解释。 最佳答案 首先,在通用网络中,有两种常见的处理连接类型
如上所示,我需要构建一个 Vert.x Java 应用程序,该应用程序将作为 HTTP 服务器/虚拟主机(TLS Http 流量、Web 套接字流量),它将重定向/ channel 特定域流量到其他
我正在尝试为 Vert.x 开发一个概念验证——一个简单的实时浏览器游戏。 让我们想象一个类似于在线扑克的游戏 - 您有一个大厅,里面有许多您可以加入的现有游戏。您还可以创建一个新游戏(因此该大厅中的
我的问题是在内联列表之后有一个垂直列表 li {display:inline;} li.vert (color:red;} 如何让 li.vert 垂直显示它显示红色 OK 但内联 最佳答案
其实网上有大量讨论HTTP长连接的文章,而且Idle Timeout和KeepAlive Timeout都是HTTP协议上的事情,跟Vert.x本身没有太大关系,只不过最近在项目上遇到了一些问题,用到
是否可以为路径添加 2 个处理程序? 我需要加载 html文件夹中的内容并检查 session我访问时的值 /小路。 如果我放置 router.route().handler(StaticHandle
在 vertx docs他们提到有可能限制每个 vertx 实例的事件循环线程数: Instead of a single event loop, each Vertx instance mainta
考虑其中一个顶点抛出未捕获异常的情况。 接下来发生什么? 如果从系统中删除了 Verticle 状态,是否有一些类似于 erlang supervisor 的机制来重新启动 Verticle? 关于这
我正在使用vert.x 2.1.5版本。我试图在项目中使用事件循环。下面给出的示例代码 JsonObject result = null; //loop starting for (int i=0;i
我确实有同时使用协程和Vert.x的项目。 我正在尝试编写包装器函数以在vertx工作线程池上运行阻塞代码 就像是: suspend inline fun executeOnWorkerThread
Closed. This question is not reproducible or was caused by typos。它当前不接受答案。 想改善这个问题吗?更新问题,以便将其作为on-to
我最近在java中使用vert.x框架,但我对vert.x还是新手。 通常当我们按照以下方式启动 future 时 SMObj自动分配给promise1 promise 。 Future future
查看 Vert.x 应用程序的日志,我注意到在取消部署 verticle 时出现以下异常(所有 3 个异常都是相同的): Failed to undeploy netsci.graphservice.
我正在将超时上下文传递给 Server.Shutdown(http 包)。我看不出我需要调用返回的取消函数,所以我忽略了它。但是当我运行 go vet 时,它说 context.WithTimeout
在这篇文章中,我们将会看到怎样在vert.x应用中使用HSQL,当然也可以使用任意JDBC,以及使用vertx-jdbc-client提供的异步的API,这篇文章的代码在github。 异步?
在我正在实现的 Vert.x verticle 中,我有一个之前加载到内存中的缓冲区,现在我想将它转储到磁盘中。 据我所知,我们应该使用 Pump 来确保不会使 WriteStream 过载。 但我没
我是一名优秀的程序员,十分优秀!