objective-c - 自动调整包装 NSTextView 的 NSScrollView 大小

标签 objective-c macos cocoa

如何告诉包装 NSTextViewNSScrollViewNSTextView 一起增长,直到达到最大值?

==更多细节:

该用户界面在许多消息/聊天应用程序中都很常见。最初,NSTextView 是空的,并且高度足以显示一行文本。 NSScrollView 足以容纳 NSTextView。当用户输入更多文本时,NSScrollView 应与 NSTextView 一起增长,直到达到最大高度,然后开始显示垂直滚动条。

最佳答案

观察 TextView 的文本存储上的NSTextStorageDidProcessEditingNotification。然后在布局管理器上调用 usedRectForTextContainer 来确定 View 文本容器的文本大小。

您可能还需要添加 extraLineFragmentRect ,我不确定。这也可以从布局管理器中获得。

关于objective-c - 自动调整包装 NSTextView 的 NSScrollView 大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26371889/

相关文章:

objective-c - XCode 不会将我的 iPhone 设置为事件方案

iphone - 如何在 Mac 操作系统中使用 WebView 模拟 iphone safari?

objective-c - 在并发队列中使用dispatch_semaphore_t发生死锁

objective-c - 从代码中显示两个 NSTableView 项目的最简单的方法?

ios - objective-C : Issue faced while editing multiple row simultaneously in table view

html - 如何在 UIWebView 中水平和垂直居中 HTML 字符串

objective-c - NSTask 在发布版本中仅返回 standardError

c++ - SDL 错误 Undefined symbols for architecture x86_64 "_SDL_main"

objective-c - 我遇到了decimalNumberBySubtracting 和decimalNumberByDividingBy 的问题

iphone - 在 iPhone 模拟器中测试音乐库