【问题标题】:NSButton Inside NSTextFieldNSTextField 内的 NSButton
【发布时间】:2011-03-27 23:46:45
【问题描述】:

我正在尝试创建一个右侧有一个按钮的 NSTextField(类似于 NSSearchView),但我不知道如何在不进入 NSButton 的情况下让 NSTextField 的文本滚动。

到目前为止,这是我的代码:

rightButton = [[NSButton alloc] initWithFrame:rect];
[rightButton setTarget:self];
[[rightButton cell] setHighlightsBy:NSNullCellType];
[rightButton setImage:[NSImage imageNamed:@"rightButton"]];
[rightButton setAction:@selector(action:)];
[rightButton setBordered:NO];

有什么想法吗?

编辑:这是问题的屏幕截图。

【问题讨论】:

  • 更详细一点。输入文本字段时是否需要按钮保持静止?
  • 嗨,Kenny:目前,按钮停留在原处,只是在到达按钮时隐藏了文本。
  • 你是想让文本换行,还是只是让文本不在按钮所在的“列”中?
  • 考虑编辑您的问题以显示程序中当前行为的屏幕截图。
  • @dreway - 只是试图让文本不在列中。 @Bavarious - 好主意,我已经编辑了问题以添加照片。

标签: objective-c cocoa nstextfield nsbutton


【解决方案1】:

我认为this 是您正在寻找的。基本上你正在做的是调整框架以补偿你放在字段内的按钮。

【讨论】:

  • 谢谢!只有一个问题 - 当示例代码调用 [self countAreaRectForBounds:bounds] 时,Xcode 说它是一个无效的初始化程序......这是一个自定义函数吗?
  • countAreaRectForBounds 将是您放入 textField 中的自定义视图,我相信。所以也许[rightButton bounds]
  • 另外,如果我想以编程方式将 NSTextField 的单元格更改为子类,有推荐的方法吗?
  • 它是在 Interface Builder 中创建的吗?它必须以编程方式进行吗?如果您不在乎,使用 Interface Builder 会更容易。只需在此处更改此字段(假设您有 Xcode 4):bit.ly/g2DGue
  • 是的,不幸的是它必须以编程方式进行。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多