如何实现多行NSTokenField?

时间:2017-01-03 23:09:41

标签: objective-c cocoa nstokenfield

我想实现一个跨越多行的NSTokenField。例如:

Multi-line NSTokenField

我在互联网上找到了一些多行NSTokenField的示例代码:

IBOutlet NSTokenField *tokenField;

- (void)awakeFromNib
{
    [[tokenField cell] setWraps:YES];
}

成为我NSTokenField的班级代表并实施以下方法

- (void)controlTextDidChange:(NSNotification *)obj {    
    NSRect oldTokenFieldFrame = [tokenField frame];
    NSRect tokenFieldBounds = [tokenField bounds];

    float height = oldTokenFieldFrame.size.height;
    tokenFieldBounds.size.height = CGFLOAT_MAX;
    NSSize cellSize = [[tokenField cell] cellSizeForBounds:tokenFieldBounds];

    float y = oldTokenFieldFrame.origin.y + height - cellSize.height;

    [tokenField setFrame:NSMakeRect(oldTokenFieldFrame.origin.x,
                                          y,
                                          oldTokenFieldFrame.size.width,
                                          cellSize.height)];
}

但此代码无效。

你能帮我解决这个问题吗?

提前谢谢。

0 个答案:

没有答案