相关疑难解决方法(0)

在基于视图的表视图中响应文本字段中的鼠标事件

我在自定义视图中有文本字段NSOutlineView.编辑其中一个单元格需要单击,暂停和另一次单击.第一次单击选择表视图行,第二次单击单击在字段中绘制光标.双击单元格(允许您在基于单元格的表格视图中进行编辑)仅选择该行.

我想要的行为:单击一下即可更改选择并进行编辑.

我需要覆盖什么才能获得此行为?

我读过其他一些帖子:

  • NSTextField 轻量级的模式似乎并不适用于基于视图的表视图,其中电池的观点都是从笔尖实例化.
  • 我试过NSTextField这个解决方案描述的子类化,但我mouseDown没有调用我的重写方法.被覆盖awakeFromNibviewWillDraw(在这篇文章中提到)称为.当然,mouseDown如果我将文本字段放在表视图之外的某处,则会调用它.

相比之下,NSSegmentedControl我的单元格视图中的a更改其值而不先选择行.


以下是根据公认的回复改编的工作解决方案:

在大纲视图子类中:

-(void)mouseDown:(NSEvent *)theEvent {
    [super mouseDown:theEvent];

    // Forward the click to the row's cell view
    NSPoint selfPoint = [self convertPoint:theEvent.locationInWindow fromView:nil];
    NSInteger row = [self rowAtPoint:selfPoint];
    if (row>=0) [(CellViewSubclass *)[self viewAtColumn:0 row:row makeIfNecessary:NO]
            mouseDownForTextFields:theEvent];
}
Run Code Online (Sandbox Code Playgroud)

在表格单元格视图子类中:

// Respond to clicks within text fields only, because other clicks …
Run Code Online (Sandbox Code Playgroud)

cocoa nstextfield nstableview mousedown

27
推荐指数
3
解决办法
8697
查看次数

将单击操作添加到NSTextField

当我点击它时,如何将事件附加到NSTextField?那里有什么例子吗?

macos cocoa objective-c

17
推荐指数
3
解决办法
8888
查看次数

NSTextField的"已发送操作"选项有什么用?

Interface Builder控制点击a时NSTextField,该选项Sent Actions可用.我认为它会在点击我的时候触发一个动作NSTextField(这是不可编辑的),但它不起作用.

在此输入图像描述

有关此选项目标的任何线索吗?

click interface-builder nstextfield

5
推荐指数
1
解决办法
1395
查看次数

我应该使用哪种委托方法来响应文本字段的点击?

我想在用户点击文本字段时打开一个面板.我想我应该使用一个响应click事件的委托方法.我发现了

- (void)textDidBeginEditing:(NSNotification *)aNotification
Run Code Online (Sandbox Code Playgroud)

方法不起作用,那个

- (void)controlTextDidBeginEditing:(NSNotification *)aNotification
Run Code Online (Sandbox Code Playgroud)

方法有效,但只有当我在文本字段中编辑文本时,才会单击它.如果我再次编辑文本,此方法不起作用.为什么?


对不起,我想我想在mac上使用它,而不是在iphone上,如何使用cocoa?

iphone cocoa-touch uitextfield

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