对于我正在编写的Cocoa应用程序,我希望在主文档内容的右侧支持一个面板,用户可以在其中为当前选择的文档内容添加注释。(如果您熟悉Microsoft Word或Scrivener,则此功能类似于这些应用程序中的注释功能。)Scrivener做得很好,它从一个大小适合默认文本的文本字段开始,然后随着用户在其中键入内容而增加它的高度。我想在我的Cocoa应用程序中实现相同的行为。
基本策略是什么?
发布于 2012-05-31 05:53:00
有一些委托方法允许您在实际击键进入时捕获它们。
基于键盘实现下面的委托方法来放弃第一响应者
-(BOOL)textFieldShouldReturn:(UITextField *)textfield
实现下面的委托方法来检测焦点何时返回到TextField。如果愿意,您可能还希望删除当前文本,或保留已存在的文本
-(void)textFieldDidBeginEditing:(UITextField *)textfield
实现下面的委托方法来检测输入的字符以及输入的位置(基于插入符号的位置),本质上是将字符添加到私有的和显示的字符串中(显示在文本字段中)
-(BOOL)textView:(NSTextView *)aTextView shouldChangeTextInRange:(NSRange)affectedCharRange replacementString:(NSString *)replacementString
实现下面的委托方法来检测编辑何时完成,这样你就可以执行任何其他的清理工作了。你想做的事。
-(void)textFieldDidEndEditing:(UITextField *)textField
我会向您介绍TextView本身的动态调整,但正如我所看到的那样(至少在iOS上)有一个解决方案,并且我曾经使用过它。你可以将字体大小设置为静态,宽度也可以设置为静态,然后根据行数编辑高度,也可以保持高度不变,并根据字符更改宽度,等等。你说了算。
下面是StackOverflow上关于动态调整How do I size a UITextView to its content?大小的一组很好的回复
因此,如果您将击键识别与动态大小调整相结合,您应该拥有它!
发布于 2016-10-19 23:02:17
定制的非NSScrollView嵌入式NSTextView可以做到这一点。请在这里查看我的答案How do I make NSTextView grow with text?。
https://stackoverflow.com/questions/7180703
复制相似问题