Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cocoa NSB按钮的可选区域_Cocoa_Nsbutton - Fatal编程技术网

Cocoa NSB按钮的可选区域

Cocoa NSB按钮的可选区域,cocoa,nsbutton,Cocoa,Nsbutton,所以我基本上是在尝试制作一个可选文本项的列表,只是一个文本列表,没有按钮边框、背景等等。。我想我可以使用NSTableview实现这一点,但是试图使表视图完全透明并且仍然可以正常工作给了我一些问题。顺便说一句,我正在尝试使用我通过编程创建并添加到列表视图中的NSButtons来实现这一点,而不需要任何背景或挡板。但是,当我将属性设置为使按钮透明且不带挡板时,按钮的可单击区域仅降级为按钮标题的文本。单击该按钮应位于标题周围的任何其他位置将不再起作用。这是我正在使用的代码。我希望能够在创建按钮的矩形

所以我基本上是在尝试制作一个可选文本项的列表,只是一个文本列表,没有按钮边框、背景等等。。我想我可以使用NSTableview实现这一点,但是试图使表视图完全透明并且仍然可以正常工作给了我一些问题。顺便说一句,我正在尝试使用我通过编程创建并添加到列表视图中的NSButtons来实现这一点,而不需要任何背景或挡板。但是,当我将属性设置为使按钮透明且不带挡板时,按钮的可单击区域仅降级为按钮标题的文本。单击该按钮应位于标题周围的任何其他位置将不再起作用。这是我正在使用的代码。我希望能够在创建按钮的矩形中的任何位置单击,以引起单击。仅供参考,我尝试过NSSwitchButton,但没有复选框图像,也是一样。谢谢你的帮助

for(NSString *theTask in theTasks){
    NSButton *theCheckBox = [[[NSButton alloc] initWithFrame:NSMakeRect(xCoordinate + 25, yCoordinate + ([tasksWindow frame].size.height/2) - 60, [tasksWindow frame].size.width - 40, 25)] autorelease];
    [theCheckBox setButtonType:NSToggleButton];
    [theCheckBox setAction:@selector(taskChecked:)];
    [[theCheckBox cell] setBackgroundColor:[NSColor clearColor]];
    [[theCheckBox cell] setBordered:NO];
    NSAttributedString *theTitle = [[[NSAttributedString alloc] initWithString:[NSString stringWithFormat:@"%@", theTask] attributes:[NSDictionary dictionaryWithObject:[NSColor whiteColor] forKey:NSForegroundColorAttributeName]] autorelease];
    [theCheckBox setAttributedTitle:theTitle];
    [[tasksWindow contentView] addSubview:theCheckBox];
    yCoordinate -= 20;
}

更新:我已经确认,将背景色设置为“清除”似乎是导致按钮停止响应其完整边界内的单击的原因,而不是删除边界。

因此,回答我自己的问题,这是因为我将透明按钮覆盖在一个透明窗口上,该窗口拒绝鼠标事件。我只需将窗口设置为不忽略鼠标事件,该行为就会消失