首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CCL可可桥“你好世界”不起作用吗?

CCL可可桥“你好世界”不起作用吗?
EN

Stack Overflow用户
提问于 2017-05-12 14:16:26
回答 1查看 180关注 0票数 0

我试图运行Clozure为Cocoa桥提供的"hello world“脚本:

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

加载包含这些表单的文件,计算(显示红色窗口),您将看到一个红色窗口。

red-window.ccl

代码语言:javascript
复制
(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并键入

代码语言:javascript
复制
(load "red-window.ccl")
(show-red-window)

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

代码语言:javascript
复制
#<RED-VIEW <RedView: 0x4cd530> (#x4CD530)>

其他事情似乎都没有发生。

我是不是遗漏了什么?我对CL和可可都很陌生。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-11-03 01:25:55

试一试

代码语言:javascript
复制
(gui:execute-in-gui #'(lambda () (show-red-window)))

带有红色窗口示例的页面是10年前更新的。另一个例子 13天前来自最后修改,其中包括gui:execute-in-gui

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

https://stackoverflow.com/questions/43939971

复制
相关文章

相似问题

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