簡體   English   中英

如何讓Cocoa NSTextView隨着用戶輸入而增長?

[英]How do I make a Cocoa NSTextView grow as the user types into it?

對於我正在編寫的Cocoa應用程序,我想支持主文檔內容右側的面板,用戶可以在其中添加當前所選文檔內容的注釋。 (如果您熟悉Microsoft Word或Scrivener,此功能類似於這些應用程序中的注釋功能。)Scrivener可以很好地開始使用大小適合默認文本的文本字段,然后隨着用戶增長更高鍵入它。 我想為我的Cocoa應用程序實現相同的行為。

什么是基本策略?

有一些委托方法可以讓您捕獲實際的擊鍵。

實現以下委托方法以根據鍵盤重新簽署第一響應者

-(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的一組很好的響應如何將UITextView的大小調整為其內容?

因此,如果您將擊鍵識別與動態尺寸相結合,您應該擁有它!

自定義非NSScrollView嵌入式NSTextView可以解決問題。 在這里查看我的答案如何使NSTextView與文本一起成長?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM