我正在准备比较三种语言的课程中的第二个示例是处理窗口大小调整事件。它在 Java 和 C# 中的等效项中的工作很简单,但在 Mac Cocoa 框架中,NSWindow resize 事件的委托处理程序永远不会被调用。我添加到头文件
- (void)windowDidResize: (NSNotification *)notification;
Run Code Online (Sandbox Code Playgroud)
和实现文件
- (void)windowDidResize: (NSNotification *)notification
{
NSString *name = notification.name;
NSLog (@"Window was resized, notification %s", name);
}
Run Code Online (Sandbox Code Playgroud)
当我调整窗口大小时,永远不会发出消息。我究竟做错了什么?鼠标事件按其应有的方式工作。[MacBook Pro OSX 10.6.8,Xcode 3.2.6 64 位]。
我 swift 5 的两分钱。(显示委托和通知,选择一个..)
import Cocoa
class ViewController: BaseController, NSWindowDelegate {
override func viewDidLoad() {
super.viewDidLoad()
self.makeItListenZoom()
}
override func viewDidAppear() {
self.view.window?.delegate = self
}
private final func makeItListenZoom(){
NotificationCenter.default.addObserver(forName: NSWindow.didResizeNotification, object: nil, queue: OperationQueue.main) { (n: Notification) in
print("didresize---")
}
}
func windowDidResize(_ notification: Notification){
print("windowDidResize")
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1569 次 |
最近记录: |