gpt4 book ai didi

macos - 如何将自定义 NSView 添加到 Window

转载 作者:行者123 更新时间:2023-12-03 16:14:10 27 4
gpt4 key购买 nike

我知道如何在 iOS 中执行此操作,但不知道如何在 Cocoa 中执行此操作。

我想捕获键盘事件,我想我需要重写acceptFirstResponder方法来完成此任务(keyDown方法被触发)。所以我创建了一个扩展 NSCustomView 的类并尝试将其添加到主窗口中,但我只是不明白如何做到这一点。到目前为止,我向主视图添加了一个自定义 View ,然后尝试以编程方式添加它,如下所示:

TestView *view = [[TestView alloc] init];
[[_window contentView] addSubview:view];

但这不起作用。那么我该怎么做呢?

最佳答案

要查看 View 是否已添加到窗口,您可以重写 View 的 viewDidMoveToWindow 方法并记录 [self window] 的值来检查(如果是) nil 则 View 已从窗口中删除):

- (void)viewDidMoveToWindow
{
NSLog(@"window=%p", [self window]);
[super viewDidMoveToWindow];
}

您应该子类化 NSView,而不是 NSCustomView,并且 initWithFrameNSView 的指定初始化程序,而不是初始化

尝试:

TestView *view = [[TestView alloc] initWithFrame:NSMakeRect(0, 0, 100, 200)];
[[_window contentView] addSubview:view];

关于macos - 如何将自定义 NSView 添加到 Window,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11225151/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com