我有一个NSView,里面有一个Label:NSTextField Control, 在NSView内部,我必须在右键单击时显示上下文菜单,其工作正常,除了以下几个问题,
在某个地方它不起作用,即如果我右击,它不会打开上下文菜单,进一步我意识到我保持标签的长度/宽度太大而右键点击发生在标签上, 但由于这是空白区域,所以作为par用户体验,应该允许打开上下文菜单,我觉得有两种方法可以解决这个问题
1 - 检查NSTextField运行时的宽度/长度以设置适当的宽度
2 - 将NSTextField(Label)中的鼠标事件(或至少右键单击)传递给其ParentView,
任何人都可以建议我,我怎样才能实现这一目标?
亲切的问候
罗汉
答案 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];**
..........................................................
..........................................................
..........................................................
}
所以我可以在右键单击上看到菜单,
亲切的问候 罗汉