NSTextField垂直对齐?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (123)

我正在创建可可应用程序,其中我以这种方式NSTextField编程创建,

NSView *superView = [[NSView alloc] initWithFrame:NSMakeRect(0, 300, 1400, 500)];
NSTextField *myTextField = [[NSTextField alloc] initWithFrame:NSMakeRect(180, 100, 1000, 300)];
[myTextField setStringValue:myText];
[myTextField setEditable:NO];
[myTextField setBezeled:NO];
[myTextField setDrawsBackground:NO];
[myTextField setSelectable:NO];
[myTextField setFont:[NSFont fontWithName:@"Futura" size:22]];
[superView addSubview:myTextField];
[superView setAutoresizesSubviews:YES];
[myTextField setAutoresizingMask:NSViewWidthSizable | NSViewHeightSizable];
[self.window.contentView addSubview:superView];  

现在我想要垂直对齐我的文本,并且应该根据文本长度进行调整。 任何人有任何建议?

提问于
用户回答回答于

你想要的是可能的,但是你必须创建一个NSTextFieldCell的子类,然后在你的NSTextField中使用这个子类。你想覆盖的主要方法是drawingRectForBounds:selectWithFrame:editWithFrame:

用户回答回答于

要将文本字段调整为字符串大小,你必须先用NSString's' 计算文本大小,sizeWithFont: constrainedToSize: lineBreakMode:然后再通过设置框架来调整文本字段的大小。

扫码关注云+社区