小编Pau*_*aul的帖子

键盘交互关闭时,UITableView contentInset不更新

更新资料

我发现在许多重构中,我继承自UIViewController而不是UITableViewController,因此我缺少UITableViewController提供的一些自动行为。但是,在交互式关闭键盘时,我仍然需要手动处理滚动视图插图。看到我更新的答案。


我正在尝试模拟iMessage,当用户将其拖到屏幕底部时如何关闭键盘。我可以解决一个困扰我的小视觉问题。

当将键盘从屏幕上拖动时,滚动指示器无法正确调整大小-直到完全将其关闭为止。

我使用键盘通知来告诉我何时出现键盘以增加内容并按键盘高度滚动插图。取消键盘后,似乎不需要执行任何操作,因为插入时似乎正确。但是,以交互方式关闭时,在拖动事件期间我无法更新插图。

为了说明问题,第一个图像显示由于键盘占用了空间,因此内容已滚动到屏幕顶部之外。用户已滚动到表格的最后一行:

显示键盘,内容滚动到底部

在这里,键盘被关闭了,几乎完全不在屏幕上。但是,请注意滚动指示器的尺寸完全错误。现在所有内容几乎都在屏幕上,因此指示器应该伸展,但是,发生的情况是,当键盘向下移动时,滚动指示器向上移动而不伸展。这不是iMessage中发生的情况。

键盘被解雇

我认为我的工作很标准,我正在创建UIToolBar(iOS 8.3)并在我的视图控制器中覆盖以下方法:

override var inputAccessoryView: UIView {
    return toolbar
}

override func canBecomeFirstResponder() -> Bool {
    return true
}

func willShowKeyboard(notification: NSNotification) {
    let keyboardFrame = notification.userInfo![UIKeyboardFrameEndUserInfoKey] as! NSValue
    tableView.contentInset.bottom = keyboardFrame.CGRectValue().height
    tableView.scrollIndicatorInsets.bottom = keyboardFrame.CGRectValue().height
}
Run Code Online (Sandbox Code Playgroud)

keyboard scroll uitableview uiscrollview ios

5
推荐指数
1
解决办法
3300
查看次数

为什么合并一系列修订版本与单独合并它们有​​何不同?

我一直试图了解SVN合并/重新整合并阅读这些文章/书籍:

http://svnbook.red-bean.com/en/1.5/index.html
http://blogs.open.collab.net/svn/2008/07/subversion-merg.html

我显然还没有得到它,因为我不明白为什么在合并回到主干(反射/循环合并)中包含同步修订是一个问题 - 我确实看到了不排除修订的理由.

如果主干上的文件A行合并到分支上的文件A'然后合并回主干,那么A和A'之间肯定没有区别,所以没有冲突?为什么"[合并] 返回已经存在于主干中的变化 "这个问题?

我正在尝试复制冲突场景,试图理解重新整合对我的影响,但更令我困惑的是这种情况:

  1. 在trunk上提交更改(r4)
  2. 将r4合并到分支并提交(r5)
  3. 在分支上提交更改(r6)
  4. 通过以下任一方法将分支合并到主干:
    • 将修订版本范围r5-r6合并到主干 - 发生冲突,或
    • 将r5合并到trunk,然后将r6合并到trunk - 不会发生冲突

我正在使用SmartSVN 6.6和SVN 1.6.合并修订范围与单独合并每个修订版时,为什么会有不同的结果?最终,为什么反思合并是一个问题?

svn revision svn-reintegrate branching-and-merging

4
推荐指数
1
解决办法
1908
查看次数

从 Spring Security 5.x Bcrypt 哈希迁移到 Quarkus

我正在尝试重写最初使用 Spring 开发的应用程序。用户身份验证是通过 Spring Security 提供的,Spring Security 使用 Bcrypt 来生成和检查散列密码。

它们以如下所示的格式存储在数据库中。据我所知,它是这样表示的:

|  |RR|        Salt          |      Hashed Password        |
$2a$10$Dh23I3CO6l1n3mOofdazreNLg2OHxzDrxyGGZEstTbITKs.cX3N/u
Run Code Online (Sandbox Code Playgroud)

(其中RR是轮数)

我尝试将其迁移到新的表结构,如使用 4.6的哈希密码表示形式下的“表 3. 示例表”中所示组件文档,例如:

NAME | PASSWORD                        | SALT                   |ITERATION_COUNT|
=====|=================================|========================|===============|
test | NLg2OHxzDrxyGGZEstTbITKs.cX3N/u | Dh23I3CO6l1n3mOofdazre | 10            |
Run Code Online (Sandbox Code Playgroud)

我已经配置了映射器,application.properties如下所示:

quarkus.security.jdbc.principal-query.sql=SELECT u.password, u.salt, u.iteration_count FROM test_user u WHERE u.name=?
quarkus.security.jdbc.principal-query.bcrypt-password-mapper.enabled=true
quarkus.security.jdbc.principal-query.bcrypt-password-mapper.password-index=1
quarkus.security.jdbc.principal-query.bcrypt-password-mapper.hash-encoding=base64
quarkus.security.jdbc.principal-query.bcrypt-password-mapper.salt-index=2
quarkus.security.jdbc.principal-query.bcrypt-password-mapper.salt-encoding=base64
quarkus.security.jdbc.principal-query.bcrypt-password-mapper.iteration-count-index=3
Run Code Online (Sandbox Code Playgroud)

但是,我要么收到由无效的 base64 字符引起的错误(这并不完全令人惊讶,因为 Spring Security 中的实现声明它不是 MIME 兼容的 base64 实现),或者当该错误不存在时,它无法验证密码。

我如何才能将所有用户迁移到 Quarkus 使用的 Bcrypt 实现?

bcrypt quarkus

1
推荐指数
1
解决办法
492
查看次数