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
。这不是完整的代码。