Tôi đang xây dựng một ứng dụng thanh trạng thái nhỏ, khi tôi nhấp vào biểu tượng nó cho thấy một NSPopover. Tất cả làm việc tốt cho đến khi tôi nâng cấp lên El Capitan. Vấn đề là khi tôi lần đầu tiên khởi động ứng dụng, tôi mô phỏng biểu tượng thanh trạng thái tự động nhấn vì tôi muốn xem cửa sổ bật lên và nó xuất hiện ở góc dưới bên trái của màn hình. Sau khi tôi đóng nó và mở lại nó xuất hiện ngay từ đầu màn hình. Bạn có thấy điều gì sai không? Đây là mã và khi tôi in các giá trị trong showPopover thì không có gì sai.NSPopover sai vị trí đôi khi, trong El Capitan
private let menu = MenuBarController()
override init() {
super.init()
self.menu.onMouseDown = {
if (self.menu.iconView?.isSelected == true) {
self.showPopover()
} else {
self.hidePopover()
}
}
}
func showPopover() {
let icon = self.menu.iconView!
let edge = NSRectEdge.MinY
let rect = icon.frame
self.popover?.showRelativeToRect(rect, ofView: icon, preferredEdge: edge);
}
func applicationDidFinishLaunching(aNotification: NSNotification) {
let icon = self.menu.iconView!
icon.mouseDown(NSEvent())
}
Ngoài ra, nếu tôi mô phỏng biểu tượng nhấn sau một thời gian trễ nhỏ nó hoạt động.