macos - NSView 上的光标放置在 NSTextField 上

标签 macos cocoa osx-lion

我有一个半透明的 NSView 子类,充当一种工具提示。当工具提示在屏幕上绘制时,它会绘制在表单顶部,因此它会覆盖几个 NSTextField

当我将鼠标悬停在 NSTextField 所在位置的工具提示上时,光标会更改为输入样式光标。

如何防止光标改变?

最佳答案

Cocoa 中并没有很好地支持重叠 View ,并且行为未定义。

相反,您的工具提示 View 应该位于其自己的无边框窗口中,该窗口足够大以包含您的 View 。工具提示窗口应该是它所附加的主窗口的子窗口。要使一个窗口成为另一个窗口的子窗口,可以使用 NSWindowaddChildWindow:ordered: 方法。

子窗口附着在父窗口上,当父窗口移动时,子窗口也会随之移动。如果您只是打开一个新窗口而不将其设为子窗口,那么如果移动另一个窗口,它将“落后”。

要创建无边框窗口,请将 NSBorderlessWindowMask 作为 styleMask 传递给 initWithContentRect:styleMask:backing:defer: 方法NSWindow.

关于macos - NSView 上的光标放置在 NSTextField 上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9795214/

相关文章:

xcode - OSX Lion 上未生成代码覆盖率文件

javascript - Safari、单页应用程序和 "Swipe between pages"OS X 选项

cocoa - 从beginSheetModalForWindow获取URL :

cocoa - 将自定义 URL 协议(protocol)映射到 HTTP(使用 NSURLProtocol?)

macos - 我可以使用哪些方法从 OS X Lion 的命令行 growl ?

c - 如何将 char* 转换为 UTF-8 编码的 char*?

cocoa - 如何收听所有 Apple 事件?

c# - 如何每隔几秒截屏一次C#控制台

python - 如何在 Mac OS X 中记录 python 程序事件

objective-c - 在继续方法之前等待一些可变时间完成