gpt4 book ai didi

objective-c - 当 NSButton 上有另一个控件(如 NSLabel)时,NSButton 单击不起作用

转载 作者:行者123 更新时间:2023-12-03 17:38:11 26 4
gpt4 key购买 nike

我知道这似乎是一个愚蠢的问题,但它让我很烦恼,这就是为什么我把它放在 Stackoverflow 上。请宽容一点。

这是我的NSButton :

enter image description here

有 2 NSLabel就在上面

  1. 显示按钮名称已安装的应用程序

  2. 显示已安装应用的数量

问题

当我点击 NSLabel 附近时,NSButton操作不会被调用。

P.S:我来自MicrosoftWPF世界。在那里我们有MouseDownPreview处理此类情况的事件。我对 cocoa 了解不多。请帮忙,非常感谢...

最佳答案

主要问题在于 NSTextField。文本字段绘制在 NSButton 的顶部,因此它覆盖了它。并且单击文本字段区域不会将 mouseClick 事件发送到 NSButton

您可以有几种方法来应对这个问题:

  1. 创建 NSButtons 而不是 NSTextField 并设置圆形按钮的操作方法。
  2. 使用自定义NSTextField,可以accept mouse click event ,并调用圆形按钮的操作。
@interface ClickableTextField : NSTextField
@end

@implementation ClickableTextField

- (void)mouseDown:(NSEvent *)theEvent
{
[self sendAction:[self action] to:[self target]];
}

@end

关于objective-c - 当 NSButton 上有另一个控件(如 NSLabel)时,NSButton 单击不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34430676/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com