1

今天我有一个从这个问题中萌芽的问题:Database Results in Cocoa。它是关于使用数据库返回的数据来创建一定数量的问题。我正在使用以下代码的形式(已在问题中发布)。

NSMutableDictionary * interfaceElements = [[NSMutableDictionary alloc] init];

for (NSInteger i = 0; i < numberOfTextFields; ++i) {
  //this is just to make a frame that's indented 10px
  //and has 10px between it and the previous NSTextField (or window edge)
  NSRect frame = NSMakeRect(10, (i*22 + (i+1)*10), 100, 22);
  NSTextField * newField = [[NSTextField alloc] initWithFrame:frame];
  //configure newField appropriately
  [[myWindow contentView] addSubview:newField];
  [interfaceElements setObject:newField forKey:@"someUniqueIdentifier"];
  [newField release];
}

但是,现在当我尝试使用 IFVerticallyExpandingTextfield (来自http://www.cocoadev.com/index.pl?IFVerticallyExpandingTextField)或创建任何大量文本时,它只会遍历其他绘制的内容。我研究了在对象上使用 setAutosizingMask: ,但到目前为止还没有奏效。

谢谢你的帮助。

编辑:我希望效果看起来像“正确的文本字段”,发生的情况称为“StackOverflow 示例” - http://www.mediafire.com/?sharekey=bd476ea483deded875a4fc82078ae6c8e04e75f6e8ebb871

编辑 2:如果没有人知道如何使用这个 IFVerticallyExpandingTextfield 类,有人会知道是否有另一种方法来实现这个效果吗?

4

1 回答 1

1

你是这个意思吗?

http://developer.apple.com/documentation/Cocoa/Conceptual/CocoaDrawingGuide/GraphicsContexts/GraphicsContexts.html

你的问题对我来说不是很清楚,但这可能会有所帮助^^^。

查看该页面上的“修改当前图形状态”。

只是从“正确的文本字段”示例中完全复制代码并在您的应用程序中使用它呢?或者从 'Correct texfield' 示例开始您的应用程序。

http://www.cocoadev.com/index.pl?IFVerticallyExpandingTextField的评论说:

试试看!您应该能够将其放入项目中,读取 Interface Builder 中的文件,并使用自定义类窗格将 NSTextField 制作成 IFVerticallyExpandingTextField。您需要为自动换行设置布局和换行属性才能使其正常工作。

虽然当文本字段嵌入子视图时扩展应该正常工作,但我在处理 NSScrollViews 时遇到了一些麻烦。该字段扩展为滚动视图的内容视图,但滚动条上的控件均未出现。一些帮助在这里将不胜感激。

于 2009-08-17T16:26:24.247 回答