对于我正在编写的 Cocoa 应用程序,我希望在主要文档内容的右侧支持一个面板,用户可以在其中为当前选定的文档内容添加注释。 (如果您熟悉 Microsoft Word 或 Scrivener,此功能类似于这些应用程序中的评论功能。)Scrivener 做得很好,它从一个大小适合默认文本的文本字段开始,然后随着用户的使用而增加它的高度输入它。我想为我的 Cocoa 应用实现相同的行为。
基本策略是什么?
最佳答案
有一些委托(delegate)方法可以让您捕获实际的击键。
根据键盘实现以下委托(delegate)方法以退出第一响应者
-(BOOL)textFieldShouldReturn:(UITextField *)textfield
实现以下委托(delegate)方法来检测焦点何时返回到 TextField。您可能还想删除当前文本,或者如果您愿意,可以保留已经存在的文本
-(void)textFieldDidBeginEditing:(UITextField *)textfield
实现下面的委托(delegate)方法来检测输入的字符和位置(基于插入符号的位置),并且基本上将字符添加到您的私有(private)持有和显示的字符串(显示到您的文本字段)
-(BOOL)textView:(NSTextView *)aTextView shouldChangeTextInRange:(NSRange)affectedCharRange replacementString:(NSString *)replacementString
执行以下委托(delegate)方法来检测编辑何时完成,以便您可以执行任何其他清理等...您希望执行的操作。
-(void)textFieldDidEndEditing:(UITextField *)textField
我会就 TextView 本身的动态大小回复您,但正如我所见(至少在 iOS 上)有一个解决方案并且我曾经使用过它。你基本上会让你的字体大小静态,可能你的宽度静态,然后根据你有多少行编辑你的高度,或者你可以保持你的高度静态,并根据字符等改变你的宽度......由你决定。
这是 StackOverflow 上关于动态大小调整的一组很棒的回复 How do I size a UITextView to its content?
因此,如果您将击键识别与动态调整大小结合起来,您应该拥有它!!!
关于objective-c - 如何让 Cocoa NSTextView 随着用户输入而增长?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7180703/