gpt4 book ai didi

objective-c - NSTextView 的意外行为(因为没有标题栏的 NSWindow?)

转载 作者:搜寻专家 更新时间:2023-10-30 19:46:11 24 4
gpt4 key购买 nike

我有一个 NSWindow(我的主窗口)和一个具有 NSTextView 的子窗口(位于 NSWindowBelow 主窗口)。子窗口没有标题栏,也没有阴影和透明。
这是我用来设置子窗口以使其透明的代码:

- (id) initWithContentRect:(NSRect)contentRect styleMask:(NSUInteger)aStyle backing:(NSBackingStoreType)bufferingType defer:(BOOL)flag{
if (![super initWithContentRect: contentRect styleMask:NSBorderlessWindowMask backing: bufferingType defer:NO]) return nil;

[self setBackgroundColor: [NSColor clearColor]];
[self setOpaque:NO];

return self;
}

但是当我尝试选择其中的文本时,会发生以下情况(子窗口上方的黑色部分是主窗口):
enter image description here
看起来 NSTextView 没有聚焦,因为选择不是蓝色的。我试过调用:[[_childWindow textView] becomeFirstResponder]; 但结果是一样的。另一件事是,当我滚动它时,有时它会非常滞后和“断断续续”。

你们对造成这种情况的原因以及如何解决它有什么想法吗?我怀疑这是因为窗口没有标题栏,但我不确定。谢谢!

最佳答案

来自 NSWindow 文档:

canBecomeKeyWindow
Indicates whether the window can become the key window.

- (BOOL)canBecomeKeyWindow
Return Value
YES if the window can become the key window, otherwise, NO.

Discussion
Attempts to make the window the key window are abandoned if this method returns
NO. The NSWindow implementation returns YES if the window has a title bar or a
resize bar, or NO otherwise.

尝试覆盖 -canBecomeKeyWindow 并返回 YES。

关于objective-c - NSTextView 的意外行为(因为没有标题栏的 NSWindow?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16573651/

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