我想捕获键盘事件,我想我需要覆盖acceptFirstResponder方法来实现它(触发keyDown方法).所以我创建了一个扩展NSCustomVIEw的类,并试图在主窗口中添加它,但我无法理解如何做到这一点.到目前为止,我在主视图中添加了一个自定义视图,然后尝试以编程方式添加它:
TestVIEw *vIEw = [[TestVIEw alloc] init];[[_window contentVIEw] addSubvIEw:vIEw];
但这不起作用.那我该怎么做呢?
解决方法 要查看视图是否已添加到窗口,您可以覆盖视图的vIEwDIDMovetoWindow方法并记录[self window]的值以进行检查(如果它是nil,则视图已从窗口中删除):- (voID)vIEwDIDMovetoWindow{ NSLog(@"window=%p",[self window]); [super vIEwDIDMovetoWindow];}
您应该是NSVIEw的子类,而不是NSCustomVIEw,而initWithFrame是NSVIEw的指定初始化程序,而不是init.
尝试:
TestVIEw *vIEw = [[TestVIEw alloc] initWithFrame:NSMakeRect(0,100,200)];[[_window contentVIEw] addSubvIEw:vIEw];总结
以上是内存溢出为你收集整理的macos – 如何将自定义NSView添加到Window全部内容,希望文章能够帮你解决macos – 如何将自定义NSView添加到Window所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)