作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在学习 Swift 并为 OS X 创建我的第一个项目。当用户按下按钮“shareButton”时,我希望 NSSharingServicePicker 弹出窗口显示在该按钮上。
我用这段代码创建 NSSharingServicePicker 对象:
var text = "Hello, world!"
var share = NSSharingServicePicker(items: [text])
现在,我必须如何自定义此代码以显示弹出窗口?
share.showRelativeToRect(rect: NSRect, ofView: NSView, preferredEdge: NSRectEdge)
我试过了,但它显示的弹出窗口位置错误,控制台显示错误。
let rect = shareButton.frame
let edge : NSRectEdge = NSRectEdge.MaxY
let view = shareButton
share.showRelativeToRect(rect, ofView: view, preferredEdge: edge)
“NSSharingServicePicker showRelativeToRect: ofView: preferredEdge:] 不应在 mouseUp 上调用请使用 -[NSControl sendActionOn:NSLeftMouseDownMask]; 配置发件人;“
最佳答案
首先,要摆脱 NSLeftMouseDownMask 警告,请在应用启动时更改按钮的行为。例如,将这段代码放在 viewDidLoad() 中。
youShareButton.sendAction(on: NSLeftMouseDownMask)
这就是我在按钮上显示选择器 View 所做的
let shareItems = [aURL]
let sharingPicker:NSSharingServicePicker = NSSharingServicePicker.init(items: shareItems)
let sharingPicker:NSSharingServicePicker = NSSharingServicePicker.init(items: shareItems)
sharingPicker.show(relativeTo: yourShareButton.bounds, of: yourShareButton, preferredEdge: .minY)
关于xcode - Swift - 如何让 NSSharingServicePicker 在特定按钮中弹出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35819866/
我是一名优秀的程序员,十分优秀!