首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >可编辑NSTextField not .titled NSPanel

可编辑NSTextField not .titled NSPanel
EN

Stack Overflow用户
提问于 2020-07-25 13:59:14
回答 1查看 93关注 0票数 0

我在做一座为反应而建的桥梁--macos。我需要和聚光灯一样行为的NSPanel。

我以编程的方式在里面创建了NSPanel和NSTextField。一切正常工作,但如果我将NSPanel更改为非.titled,则将禁用文本字段。

作品:

代码语言:javascript
复制
panel = NSPanel(contentRect: NSRect(x: 0, y: 0, width: 400, height: 40), styleMask: [
    .borderless,
    .nonactivatingPanel,
    .titled,  < ------- HERE
    .resizable,
  ], backing: .buffered, defer: true)

searchField = NSTextField()
searchField.delegate = self
searchField.isBezeled = false
searchField.font = NSFont.systemFont(ofSize: 20, weight: .light
searchField.drawsBackground = false
searchField.placeholderString = "Query here..."
searchField.setFrameSize(NSMakeSize(400, 40)

不管用:

代码语言:javascript
复制
panel = NSPanel(contentRect: NSRect(x: 0, y: 0, width: 400, height: 40), styleMask: [
    .borderless,
    .nonactivatingPanel,
    .resizable,
  ], backing: .buffered, defer: true)

searchField = NSTextField()
searchField.delegate = self
searchField.isBezeled = false
searchField.font = NSFont.systemFont(ofSize: 20, weight: .light
searchField.drawsBackground = false
searchField.placeholderString = "Query here..."
searchField.setFrameSize(NSMakeSize(400, 40)

如何在NSPanel中使用隐藏的标题栏和可编辑的NSTextField?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-07-26 19:29:32

我相信.borderless.titled是相互排斥的。换句话说,当您在顶部代码中指定.borderless时,.titled会重写它,最终得到一个正常处理事件的“正常窗口”。在第二段代码中,.borderless实际上进行了注册,最终得到了一个无边界窗口子类,该子类处理事件的方式非常不同。但所有这些都与问题无关。

假设您的要求大于macOS 10.10,则可以使用以下代码:

代码语言:javascript
复制
panel = NSPanel(contentRect: NSRect(x: 0, y: 0, width: 400, height: 40), styleMask: [
    .titled,
    .fullSizeContentView,
    ], backing: .buffered, defer: true)
panel.titleVisibility = .hidden
panel.titlebarAppearsTransparent = true
panel.makeFirstResponder(searchField)
panel.makeKeyAndOrderFront(nil)

这将获得一个完整大小的标题面板,它通常处理事件(它允许其视图成为键)。然后,在显示面板之前,隐藏标题栏并使其透明。注意,要使标题栏完全消失,您需要不使用任何.resizable.closable.miniaturizable选项。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63089253

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档