如何制作多行NSTextField? UPDATE:我在IB特殊类型的NSTextField中找到了“Wrapped Text Field”。它是多行的但是当我想要换行时我必须按Ctrl + Enter。但我想只按Enter键获取换行符。我该怎么办?
答案 0 :(得分:11)
无法仅在Interface Builder中指定此行为。您可以使用本技术说明QA1454中描述的委托消息来执行此操作。
以下是技术说明中的示例委托消息:
- (BOOL)control:(NSControl*)control textView:(NSTextView*)textView doCommandBySelector:(SEL)commandSelector
{
BOOL result = NO;
if (commandSelector == @selector(insertNewline:))
{
// new line action:
// always insert a line-break character and don’t cause the receiver to end editing
[textView insertNewlineIgnoringFieldEditor:self];
result = YES;
}
else if (commandSelector == @selector(insertTab:))
{
// tab action:
// always insert a tab character and don’t cause the receiver to end editing
[textView insertTabIgnoringFieldEditor:self];
result = YES;
}
return result;
}
答案 1 :(得分:6)
使用NSTextView
,它是一个多行NSTextField
排序,它是NSText
的子类,如果我错了,请更正我的。 NSTextView
有一个NSTextStorage
,它是NSAttributedString
的子类。你需要给它一个NSAttributedString
对象而不是NSString
来填充它的内容,因为它可以显示颜色等。
[[yourTextView textStorage] setAttributedString:attrStr];