Cocoa:如何制作多行 NSTextField?
如何制作多行 NSTextField? 更新:我在IB中发现了一种特殊类型的NSTextField,称为“Wrapped Text Field”。它是多行的,但是当我想要换行时,我必须按 Ctrl+Enter。但我只想按 Enter 以获得换行符。我该怎么做呢?
How to make multiline NSTextField? UPDATE: I've found in IB special type of NSTextField called "Wrapped Text Field". It is multiline but when I want get a newline I have to press Ctrl+Enter. But I want to press only Enter to get a newline. How can I do it?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
无法仅在 Interface Builder 中指定此行为。您可以按照本技术说明 QA1454< 中所述使用委托消息来完成此操作/a>.
以下是技术说明中的委托消息示例:
There is no way to specify this behavior solely in Interface Builder. You can do it with a delegate message as described in this tech note QA1454.
Here is the example delegate message from the tech note:
使用
NSTextView
,它是一个多行NSTextField
,它是NSText
的子类,如果我错了,请纠正我。NSTextView
有一个NSTextStorage
,它是NSAttributedString
的子类。您需要给它一个 NSAttributedString 对象而不是 NSString 来填充其内容,因为它可以显示颜色等。Using
NSTextView
, its a multilineNSTextField
sorta, it is a subclass ofNSText
correct my if I am wrong. TheNSTextView
has anNSTextStorage
, which is a subclass ofNSAttributedString
. You need to give it anNSAttributedString
object instead of aNSString
to fill its contents as it can display colors etc.与 Jon Steinmetz 的答案相同,但对于 Swift:
我设置的委托协议是
NSTextFieldDelegate
The same answer as Jon Steinmetz but for Swift:
The delegate protocol I set up was
NSTextFieldDelegate