NSTextView叠加导致奇数与第一响应者状态
我在
NSScrollView
中有一个NSTextView
,我以编程方式插入一个NSView
子类作为NSTextView
的子视图。此NSView
用作叠加层,叠加有关其下方文本的图形信息。
我认为它工作得很好,直到我注意到文本视图没有响应右键单击。其他操作(编辑,选择)似乎工作得很好。
此外,如果第一响应者被更改为滚动视图的兄弟(例如,大纲视图),则文本视图不会通过单击它来重新获得第一响应者状态。选择将响应于单击而更改,但选择突出显示为灰色而不是蓝色(表示文本视图不是第一个响应者)。
如果我偏移叠加子视图的帧,则文本视图在不与叠加重叠的区域中正常表现100%,但重叠区域的行为不正确,如上所述。
在Mac OS X 10.6.4上复制此行为的步骤:
创建一个简单的旧的非基于文档的Cocoa应用程序。
将“NSTextView”IBOutlet添加到app delegate .h。
在MainMenu.xib中向窗口添加NSTextView
。连接textView插座。
输入一些代码:
在applicationDidFinishLaunching:
NSView *overlay = [[NSView alloc] initWithFrame:textView.bounds];
[textView addSubview:overlay];
[overlay release];
运行应用程序,观察文本区域中的右键单击不能正常工作,但您仍然可以与文本视图进行交互。
接下来,将NSOutlineView添加到xib中的窗口。观察一旦焦点离开文本区域(如果单击大纲视图)并且叠加到位,则无法将焦点设置回文本视图(它不会再次成为第一响应者)。
有没有什么方法可以让NSTextView
接收所有事件,即使我的NSView
覆盖不接受第一响应者或鼠标事件?我怀疑这可能与字段编辑器有关 - 也许它忽略了它认为注定要覆盖视图的事件?
没有找到相关结果
已邀请:
3 个回复
究补闯
攫怂绵十
疾很毋悲