iOS 记事本应用程序中的自动滚动

发布于 2024-12-23 03:52:56 字数 234 浏览 1 评论 0原文

当我开始编辑文本时,我对记事本应用程序中的自动滚动感到好奇,否则这些文本会被键盘遮挡。我了解一般发生的情况:应用程序使用光标的位置、键盘高度和一些偏移量来滚动记事本。但是我不清楚到底哪些对象/值正在发生变化。

关于框架、边界 contentOffsets 等发生了什么?

编辑:我对这种自动滚动的一般工作方式感兴趣。记事本应用程序只是一个很好的例子。

I'm curious about the automatic scrolling in the Notepad app when I start editing text that would otherwise be obscured by the keyboard. I understand what is happening in general: the app uses the cursor's position, the keyboard height and some offset to scroll the notepad. However I'm unclear about exactly what objects/values are changing.

What is happening in regards to frames, bounds contentOffsets etc?

Edit: I'm interested in how this automatic scrolling works in general. Notepad app is just a good example.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

悲欢浪云 2024-12-30 03:52:56

这在 iOS 文本、Web 和编辑编程指南

当系统要求显示键盘时,系统会将其从屏幕底部滑入并将其放置在应用程序内容上方。因为它放置在内容的顶部,所以键盘可以放置在用户想要编辑的文本对象的顶部。发生这种情况时,您必须调整内容以使目标对象保持可见。

调整内容通常涉及临时调整一个或多个视图的大小并定位它们,以便文本对象保持可见。使用键盘管理文本对象的最简单方法是将它们嵌入到 UIScrollView 对象(或其子类之一,如 UITableView)中。当键盘显示时,您所要做的就是重置滚动视图的内容区域并将所需的文本对象滚动到位。因此,为了响应 UIKeyboardDidShowNotification,您的处理程序方法将执行以下操作:

  1. 获取键盘的大小。
  2. 根据键盘高度调整滚动视图的底部内容插图。
  3. 将目标文本字段滚动到视图中。

This is described in Text, Web, and Editing Programming Guide for iOS:

When asked to display the keyboard, the system slides it in from the bottom of the screen and positions it over your application’s content. Because it is placed on top of your content, it is possible for the keyboard to be placed on top of the text object that the user wanted to edit. When this happens, you must adjust your content so that the target object remains visible.

Adjusting your content typically involves temporarily resizing one or more views and positioning them so that the text object remains visible. The simplest way to manage text objects with the keyboard is to embed them inside a UIScrollView object (or one of its subclasses like UITableView). When the keyboard is displayed, all you have to do is reset the content area of the scroll view and scroll the desired text object into position. Thus, in response to a UIKeyboardDidShowNotification, your handler method would do the following:

  1. Get the size of the keyboard.
  2. Adjust the bottom content inset of your scroll view by the keyboard height.
  3. Scroll the target text field into view.
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文