小编Tob*_*obi的帖子

NSButtonCell内部定制NSCell

在我的cocoa应用程序中,我需要一个用于NSTableView的自定义NSCell.此NSCell子类包含用于处理单击的自定义NSButtonCell(以及用于文本内容的两个或三个NSTextFieldCells).您将在下面找到我的代码的简化示例.

@implementation TheCustomCell

- (void)drawWithFrame:(NSRect)cellFrame inView:(NSView *)controlView {
   // various NSTextFieldCells
   NSTextFieldCell *titleCell = [[NSTextFieldCell alloc] init];
   ....
   // my custom NSButtonCell
   MyButtonCell *warningCell = [[MyButtonCell alloc] init];
   [warningCell setTarget:self];
   [warningCell setAction:@selector(testButton:)];
   [warningCell drawWithFrame:buttonRect inView:controlView];
}
Run Code Online (Sandbox Code Playgroud)

我坚持的问题是:在这个NSCell中使用该按钮(更确切地说:NSButtonCell)以正常工作的最佳/正确方法什么?"工作"表示:触发指定的操作消息并在单击时显示备用图像.开箱即用,按钮在单击时不执行任何操作.

很难找到关于这个主题的信息/读物.我在网上找到的唯一帖子指出我要实施

- (BOOL)trackMouse:(NSEvent *)theEvent inRect:(NSRect)cellFrame ofView:(NSView *)controlView untilMouseUp:(BOOL)untilMouseUp; 
Run Code Online (Sandbox Code Playgroud)

这是正确的方法吗?实现trackMouse:在我的包含NSCell中?然后将事件转发给NSButtonCell?我本来期望NSButtonCell本身知道在点击它时该做什么(我看到trackMouse:方法更多的是在cunjunction,真正跟踪鼠标移动 - 而不是作为'标准'点击行为的训练轮).但是当它被包含在一个单元格本身时似乎不会这样做......似乎我还没有掌握自定义单元格的大图,但是;-)

如果有人能够根据自己的经验回答这个问题(或指向我的某些教程等),我会很高兴 - 告诉我我是否走在正确的轨道上.

托比,提前谢谢

cocoa tableview nscell nsbuttoncell

9
推荐指数
2
解决办法
7162
查看次数

NSTableView:右键单击行上的蓝色轮廓

我想知道如何摆脱Cocoa在NSTableView/NSOutlineView中右键点击行时的蓝色轮廓.

NSTableView Outline http://tobidobi.com/nstableview_outline.png

如果我没有弄错的话,它似乎不是一个经典的"亮点",也不是一个"焦点圈" - 实际上,它是什么?

我现在正在完全自己绘制自定义NSCells - 但是我无法弄清楚如何
自己绘制这个轮廓,或者
*摆脱它,或
*至少改变它的颜色

任何提示都非常受欢迎!谢谢!

cocoa nstableview

6
推荐指数
1
解决办法
1991
查看次数

标签 统计

cocoa ×2

nsbuttoncell ×1

nscell ×1

nstableview ×1

tableview ×1