Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/9.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
Objective c NSTextView有时会变灰,无法与_Objective C_Macos_Cocoa - Fatal编程技术网

Objective c NSTextView有时会变灰,无法与

Objective c NSTextView有时会变灰,无法与,objective-c,macos,cocoa,Objective C,Macos,Cocoa,我的“菜单栏”中有一个NSView。我有一个按钮,单击该按钮,将新的NSMenuItem添加到菜单中。但是,当我在init方法中运行自定义视图中的代码时,有时视图会变灰,我无法选择它。你知道这是什么原因吗。出现此问题后,该问题似乎会影响所有创建的NSMenuItems -(id)initWithFrame:(NSRect)frameRect andTag:(int)tagz{ textfeild = [[NSTextView alloc]initWithFrame:CGRectMake(

我的“菜单栏”中有一个
NSView
。我有一个按钮,单击该按钮,将新的
NSMenuItem
添加到菜单中。但是,当我在
init
方法中运行自定义视图中的代码时,有时视图会变灰,我无法选择它。你知道这是什么原因吗。出现此问题后,该问题似乎会影响所有创建的
NSMenuItems

-(id)initWithFrame:(NSRect)frameRect andTag:(int)tagz{
    textfeild = [[NSTextView alloc]initWithFrame:CGRectMake(19,1 , 110, 18)];
    [textfeild setFont:[NSFont fontWithName:@"Helvetica" size:15]];
    [textfeild setString:[NSString stringWithFormat:@"Notespace %d",tagz]];
    [textfeild selectAll:self];
    [self addSubview:textfeild];

}

我认为您不应该在菜单项上使用
[self addSubview:
。相反,您应该创建一个
NSView
,并将自定义视图放在其中。文件如下:

但是,根据文档,菜单项内的视图可能不会接收键盘事件。它有时可能会工作,但由于文档特别提到它,所以不应该将任何需要键盘事件的视图放在菜单中


相反,您应该做的是完全避免
NSMenu
,只需在菜单通常显示的位置创建一个
NSWindow
。您可以使窗口看起来/表现得像菜单。

检查您的警告。您缺少一个
[super initWithFrame:frame]
和一个
返回self
。这不是完整的代码。