macos - CCL Cocoa 桥 "hello world"不工作?

标签 macos cocoa common-lisp ccl

我正在尝试运行 Clozure 为 CCL-Cocoa 桥提供的“hello world”脚本:

https://trac.clozure.com/ccl/wiki/CocoaBridge

Load the file containing these forms, evaluate (show-red-window), and you'll see a red window.

red-window.ccl
(in-package "CL-USER")

(require "COCOA")

(defclass red-view (ns:ns-view)
  ()
  (:metaclass ns:+ns-object))

(objc:defmethod (#/drawRect: :void) ((self red-view) (rect :<NSR>ect))
  (#/set (#/redColor ns:ns-color))
  (#_NSRectFill (#/bounds self)))

(defun show-red-window ()
  (ccl::with-autorelease-pool
   (let* ((rect (ns:make-ns-rect 0 0 300 300))
      (w (make-instance 'ns:ns-window
                :with-content-rect rect
                :style-mask (logior #$NSTitledWindowMask
                           #$NSClosableWindowMask
                           #$NSMiniaturizableWindowMask)
                :backing #$NSBackingStoreBuffered
                :defer t)))
     (#/setTitle: w #@"Red")
     (#/setContentView: w (#/autorelease (make-instance 'red-view)))
     (#/center w)
     (#/orderFront: w nil)
     (#/contentView w))))

但是当我运行 ccl64 并输入

(load "red-window.ccl")
(show-red-window)

我刚刚在终端上得到这个输出:

#<RED-VIEW <RedView: 0x4cd530> (#x4CD530)>

似乎没有发生任何其他事情。

我错过了什么吗?我对 CL 和 Cocoa 都是新手。

最佳答案

尝试

(gui:execute-in-gui #'(lambda () (show-red-window)))

带有红色窗口示例的页面上次更新是在 10 年前。 One of the other examples来自 last modified 13 天前包含 gui:execute-in-gui

关于macos - CCL Cocoa 桥 "hello world"不工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43939971/

相关文章:

lisp - 总是喜欢标签而不是车队?

mongodb - 安装后找不到命令 : mongo, (OS X)

objective-c - 制作一个具有开/关状态的自定义 NSButton,但仍处理 IBActions

macos - 如何检测 OS X 是否处于深色模式?

ios - 在 XCode 中使用 CocoaMQTT 时 iOS 应用程序出错

arrays - 字符串和数组的集差

debugging - 如何在 [Clozure] Common Lisp 中调试?

macos - Mac (68000) 汇编程序的名称是什么?

macos - 在 Mac OS 上以毫秒为单位测量 shell 脚本执行时间

macos - 无法打开 Visual Studio Code,因为 "Apple cannot check it for malicious software"