我目前正在为 OSX 10.5 及更高版本构建项目。首先,10.6的用户看不到这个;只有 10.5 个用户有这个问题。您无法在 10.6 上重现此内容。
简而言之:当使用 - (void)mouseUp:(NSEvent *)theEvent 的重载实现放置 NSView 的自定义扩展类时,mouseUp 在包裹在 NSSplitView 中时不会被调用。rightMouseUp:/Down: 在扩展的 NSView 上工作。
当我将自定义视图放在我的窗口上时,会调用该事件,当我将它直接包装在 nssplitview 中时,不会为豹(10.5)用户调用 mouseup。
重现步骤(在 10.5 上!)
- 创建一个新的可可项目
- 创建以下类
- 在窗口上拖动一个自定义视图并创建类 GTTest
- 在窗口上拖动一个拆分视图,然后在其中一个内容视图中添加一个 GTTest
班级:
@interface GTTest : NSView {
}
#import "GTTest.h"
@implementation GTTest
- (void)mouseUp:(NSEvent *)theEvent {
NSLog(@"Ger");
}
单击窗口上的 GTTest 目录会记录好行,单击 NSSplitView 则不会执行任何操作(也可以尝试断点)。rightMouseDown:/Up: 在 NSView 上工作。
ps> 当我向 splitview 添加一个按钮时(也是一个派生的 nsview,使用 nsresponder 对吗?)会触发我的 IBAction 方法;我上面的课程缺少什么才能正常工作?
我能做些什么?