swift - NSMenu() 中的 NSTextField 或 NSSecureTextField 作为 NSMenuItem()

标签 swift macos cocoa nstextfield nsmenu

我目前正在开发一个菜单栏应用程序,我正在尝试实现一个 NSTextField 或 NSSecureTextField。 这就是我添加 NSMenuItems 所做的

let menu = NSMenu()
menu.addItem(NSMenuItem(title: "Save Test Data", action: #selector(AppDelegate.saveData), keyEquivalent: ""))

但尝试像这样添加一个 NSTextField:

menu.addItem(NSTextField)

带来这个错误:

Cannot convert value of type '(NSTextField).Type'(aka 'NSTextField.Type') to expected argument type 'NSMenuItem'

但是我应该如何使用 NSMenuItem 实现 NSTextField?

最佳答案

您不能将其他元素作为 NSMenuItem 直接添加到菜单。

要实现文本字段,您已将其包装在自定义 NSView 中,并将 View 分配给菜单项的 view 属性。

关于swift - NSMenu() 中的 NSTextField 或 NSSecureTextField 作为 NSMenuItem(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39193003/

相关文章:

ios - 以编程方式获取 View Controller 的实例

ios - SceneKit – 在 SwiftUI 中渲染时相机看不到模型

objective-c - CMYK NSImage 获取像素数据

objective-c - 当用户右键单击 Mac 上 Cocoa 应用程序的停靠图标时,如何创建菜单?

objective-c - Mac OS X 上的上下文菜单首选项(无需代码注入(inject))

swift - 从字符串中获取直到字符串索引末尾的子字符串

c++ - 在Mac上找不到ifstream'文件

python - psutil 总是返回 pid 存在

objective-c - 当按下空格键时记录时间

ios - localizedCaseInsensitiveContainsString 在 Swift 中不可用