NSView | NSTextField右键单击问题

时间:2011-02-23 16:12:04

标签: cocoa macos contextmenu nsview nstextfield

我有一个NSView,里面有一个Label:NSTextField Control, 在NSView内部,我必须在右键单击时显示上下文菜单,其工作正常,除了以下几个问题,

在某个地方它不起作用,即如果我右击,它不会打开上下文菜单,进一步我意识到我保持标签的长度/宽度太大而右键点击发生在标签上, 但由于这是空白区域,所以作为par用户体验,应该允许打开上下文菜单,我觉得有两种方法可以解决这个问题

1 - 检查NSTextField运行时的宽度/长度以设置适当的宽度

2 - 将NSTextField(Label)中的鼠标事件(或至少右键单击)传递给其ParentView,

任何人都可以建议我,我怎样才能实现这一目标?

亲切的问候

罗汉

2 个答案:

答案 0 :(得分:0)

我不确定这是否有帮助,但是当您在界面生成器中的nstextfield上单击鼠标右键时,您将看到一个“菜单”对象。将它与NSMenu连接,你就有了一个默认的上下文菜单。

答案 1 :(得分:0)

到目前为止,它正在使用以下代码,

- (无效)initSubViews {        / *在这个函数中只是初始化子视图* /     NSSize imageSize = [pStatusImage size];

pStatusImageView = [[NSImageView alloc]initWithFrame:NSMakeRect(0, 0,     
                         imageSize.width,imageSize.height)];

pDisplayName = [[NSTextField alloc]initWithFrame:NSMakeRect(0, 0,          
                    STATUS_WIDTH,STATUS_HEIGHT)];
[pDisplayName becomeFirstResponder];

**[pDisplayName setMenu:pCTTableMenu];**

    ..........................................................
    ..........................................................
    ..........................................................

}

所以我可以在右键单击上看到菜单,

亲切的问候 罗汉