小编d11*_*wtq的帖子

允许单击并拖动视图以拖动窗口本身?

我正在使用一个带纹理的窗口,它的顶部有一个标签栏,位于标题栏的下方.

我已经-setContentBorderThickness:forEdge:在窗口上使用了渐变效果,并确保纸张从正确的位置滑出.

然而,什么不起作用是拖动窗口.如果我点击并拖动实际上是标题栏的区域,但是由于标题栏渐变溢出到(可能/通常是空的)标签栏,它容易点击太低而且当你试图拖动时感觉非常令人沮丧并意识到窗户没有移动.

我注意到NSToolbar,当标题栏下方占据的空间大致相同时,允许在光标位于其上时拖动窗口.如何实现这一点?

谢谢.

标签栏

macos cocoa objective-c appkit nswindow

18
推荐指数
5
解决办法
1万
查看次数

Ruby在某个地方有跨平台EOL的常量吗?

我需要格式化以换行符结尾的String.我只想添加一个"\n",但我希望这也适用于Windows.许多语言都有一个常量,根据平台提供适当的CR/LF/CRLF序列,但我似乎无法在Ruby中找到任何东西.它存在吗?

ruby

18
推荐指数
1
解决办法
2803
查看次数

Sequelize"配置文件"中有什么内容?

我刚开始在Node.js中使用Sequelize并且发现文档确实缺乏.我有一个'db'模块,我通过它连接到数据库Sequelize,并从./config.json相对于项目根目录的应用程序范围的配置文件中读取配置.这是一个嵌套配置,极不可能以Sequelize想要CLI的配置文件的方式构建.

现在我正在尝试使用迁移,文档引用了"配置文件".我知道我可以设置该配置文件的路径,但是我放入了什么?它没有记录在任何地方(我见过).

node.js sequelize.js

18
推荐指数
3
解决办法
1万
查看次数

读取和写入YAML文件而不破坏锚点和别名?

我需要打开一个YAML文件,其中包含别名:

defaults: &defaults
  foo: bar
  zip: button

node:
  <<: *defaults
  foo: other
Run Code Online (Sandbox Code Playgroud)

这显然扩展到了一个等效的YAML文档:

defaults:
  foo: bar
  zip: button

node:
  foo: other
  zip: button
Run Code Online (Sandbox Code Playgroud)

其中YAML::load把它读成.

我需要在这个YAML文档中设置新密钥,然后将其写回磁盘,尽可能保留原始结构.

我看过YAML :: Store,但这完全破坏了别名和锚点.

是否有任何可用的东西:

thing = Thing.load("config.yml")
thing[:node][:foo] = "yet another"
Run Code Online (Sandbox Code Playgroud)

将文档保存为:

defaults: &defaults
  foo: bar
  zip: button

node:
  <<: *defaults
  foo: yet another
Run Code Online (Sandbox Code Playgroud)

我选择使用YAML,因为它很好地处理了这个别名,但是编写包含别名的YAML在现实中看起来有点像一个看起来很暗淡的游戏场.

ruby yaml

17
推荐指数
1
解决办法
5951
查看次数

Emacs在指定方向上移动分割窗口?

在Terminal Emacs(没有鼠标)中,我使用分割窗口同时处理多个缓冲区.我发现在分割窗口之间移动比在Vim中做的更痛苦.阅读文档看起来我正确地做了(C-x o),但这只是顺时针方向围绕窗口循环.如果我移动到相邻的窗口进行快速编辑,我需要C-x o在我回到原地之前打几次.有时候我不小心匆匆按了很多次,不得不再次循环通过窗户.

远离安装还有另一个外部包,有没有什么方法可以直接移动到一个窗口(例如,一个数字),或者至少在相反方向的窗口周围?

在Vim C-w C-w中就像C-x o在Emacs中一样,但是也有C-w ARROW朝着指定的方向移动...类似的东西?:)

emacs

17
推荐指数
2
解决办法
7699
查看次数

ARMv6程序集中= label(等号)和[label](括号)之间有什么区别?

我正在跟随剑桥大学的Baking Pi课程,其中一个简单的操作系统是在ARMv6指令集中构建的,目标是Raspberry Pi.

ldr到目前为止,我们一直使用两种方法通过指令将数据加载到寄存器中,现在我意识到我正在使用它们,我不完全理解它们的作用.

所以我使用的东西ldr r0,=0x20200000,我实际上理解为"将存储在存储单元0x20200000的数据读入寄存器r0.

然后我用过以下的东西:

ldr r0,[r1,#4]
Run Code Online (Sandbox Code Playgroud)

我已经理解为"读取存储在r1指向的存储器地址的数据,以4字节的偏移量进入寄存器r0".

然后我遇到了这个:

ldr r0,=pattern
ldr r0,[r0]
Run Code Online (Sandbox Code Playgroud)

pattern这里是一个.int.data部分(表示接通/断开状态的用于LED的序列的位图).我在阅读本文时意识到,我之前的理解=foo一定是错的,否则上述两条指令都会做同样的事情.

=x语法基本都像在C的指针,而[x]语法如果被指向的内存x实际上是读?

让我们说ptr下面的C是一个int*,我的评论是否考虑等效组装(概念上,不是字面意思)有意义吗?

r0 = ptr;     /* equivalent to: ldr r0,=ptr     */
r0 = *ptr;    /* equivalent to: ldr r0,[ptr]    */
r0 = *(ptr+4) /* equivalent to: ldr r0,[ptr,#4] */
Run Code Online (Sandbox Code Playgroud)

assembly arm

17
推荐指数
1
解决办法
7101
查看次数

Emacs ruby​​-mode,在括号内疯狂缩进?

请原谅我的emacs newbiness,但是有人知道怎么解决这个问题吗?当emacs的编码,在红宝石模式,它缩进到正确的水平(由2位IE)中的所有关键字后,如def,class,module,begin等,但多行破损参数列表时,它缩进一个看似随机位置,像40左右的列一样.

我一直在阅读emacs选项卡设置,似乎只是绕圈而不是获取我正在寻找的信息,所以我想我会在这里问.

这是将光标放在参数列表中的屏幕截图.我已经尝试在花括号内部缩进(例如对于块或哈希)并且这样做正常,这是弄乱它的括号.

窃听器

ruby emacs

15
推荐指数
1
解决办法
3199
查看次数

检测Go中的signed signed overflow溢出

我正在构建一个Lisp,如果计算会导致它们溢出,我希望32位整数自动切换到64位整数.同样,对于64位溢出,切换到任意大小的整数.

我遇到的问题是我不知道检测整数溢出的"正确"方法是什么.

a, b := 2147483647, 2147483647
c := a + b
Run Code Online (Sandbox Code Playgroud)

如何有效地检查c是否溢出?

我已经考虑过总是转换为64位值来进行计算,然后在可能的情况下再次调整大小,但这对于像基本算术一样原始和核心的东西来说似乎很昂贵且内存浪费.

integer-overflow go

15
推荐指数
1
解决办法
3567
查看次数

node.js + socket.io是从服务器广播而不是从特定客户端广播的?

我正在使用node.js + socket.io构建一个像实时新闻源这样的简单系统.

由于这是一个"只读"系统,客户端连接和接收数据,但客户端实际上从不发送任何自己的数据.服务器生成需要发送给所有客户端的消息,没有客户端生成任何消息; 但我确实需要播出.

对socket.io的广播文件(页面结束)说:

要广播,只需添加一个broadcast标志emitsend方法调用.广播意味着向除了启动它的套接字之外的所有人发送消息.

所以我目前捕获最新的客户端连接,变量,然后emit()到该套接字 broadcast.emit()该套接字,这样这个新客户端获取新数据所有其他客户端.但感觉客户端的角色只不过是我认为socket.io已经支持的解决方法.

有没有办法根据服务器发起事件向所有客户端发送数据?

我目前的方法大致是:

var socket;

io.sockets.on("connection", function (s) {
  socket = s;
});

/* bunch of real logic, yadda yadda ... */

myServerSideNewsFeed.onNewEntry(function (msg) {
  socket.emit("msg", { "msg" : msg });
  socket.broadcast.emit("msg", { "msg" : msg });
});
Run Code Online (Sandbox Code Playgroud)

基本上导致数据需要发送到客户端的事件都是服务器端,而不是客户端.

node.js socket.io

14
推荐指数
2
解决办法
2万
查看次数

Vimscript检查当前缓冲区是否有未保存的更改

我目前已设置状态行,因此在插入模式下为橙色,否则为白色.如果文件有任何未保存的更改,我想回到正常模式时,它会变成另一种颜色,因为我经常走一个兔子洞,想知道为什么我的更改没有生效.小"[+]"并没有让我满脸;)

我找不到任何以"buf"开头的函数,但看起来像是肮脏的谓词.我假设一个存在,但被命名为其他东西.我认为会有类似bufdirty()bufchanged().有什么指针吗?:)

vim

14
推荐指数
1
解决办法
3490
查看次数