首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何让Cocoa NSTextView随着用户的输入而增长?

如何让Cocoa NSTextView随着用户的输入而增长?
EN

Stack Overflow用户
提问于 2011-08-25 02:51:10
回答 2查看 558关注 0票数 7

对于我正在编写的Cocoa应用程序,我希望在主文档内容的右侧支持一个面板,用户可以在其中为当前选择的文档内容添加注释。(如果您熟悉Microsoft Word或Scrivener,则此功能类似于这些应用程序中的注释功能。)Scrivener做得很好,它从一个大小适合默认文本的文本字段开始,然后随着用户在其中键入内容而增加它的高度。我想在我的Cocoa应用程序中实现相同的行为。

基本策略是什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-05-31 05:53:00

有一些委托方法允许您在实际击键进入时捕获它们。

基于键盘实现下面的委托方法来放弃第一响应者

代码语言:javascript
运行
复制
-(BOOL)textFieldShouldReturn:(UITextField *)textfield

实现下面的委托方法来检测焦点何时返回到TextField。如果愿意,您可能还希望删除当前文本,或保留已存在的文本

代码语言:javascript
运行
复制
-(void)textFieldDidBeginEditing:(UITextField *)textfield

实现下面的委托方法来检测输入的字符以及输入的位置(基于插入符号的位置),本质上是将字符添加到私有的和显示的字符串中(显示在文本字段中)

代码语言:javascript
运行
复制
-(BOOL)textView:(NSTextView *)aTextView shouldChangeTextInRange:(NSRange)affectedCharRange replacementString:(NSString *)replacementString

实现下面的委托方法来检测编辑何时完成,这样你就可以执行任何其他的清理工作了。你想做的事。

代码语言:javascript
运行
复制
-(void)textFieldDidEndEditing:(UITextField *)textField

我会向您介绍TextView本身的动态调整,但正如我所看到的那样(至少在iOS上)有一个解决方案,并且我曾经使用过它。你可以将字体大小设置为静态,宽度也可以设置为静态,然后根据行数编辑高度,也可以保持高度不变,并根据字符更改宽度,等等。你说了算。

下面是StackOverflow上关于动态调整How do I size a UITextView to its content?大小的一组很好的回复

因此,如果您将击键识别与动态大小调整相结合,您应该拥有它!

票数 1
EN

Stack Overflow用户

发布于 2016-10-19 23:02:17

定制的非NSScrollView嵌入式NSTextView可以做到这一点。请在这里查看我的答案How do I make NSTextView grow with text?

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7180703

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档