小编Ben*_*hoz的帖子

什么是NSTaggedDate?

我有一个我无法理解的错误,当我想释放NSMutableDictionary中的所有对象时发生这种错误.

它发生在一个名为body的自定义对象上,输出是:

-[__NSTaggedDate body]: unrecognized selector sent to instance 0xffffffffffffffff
Run Code Online (Sandbox Code Playgroud)

我在互联网上发现了很糟糕的信息.

cocoa objective-c quartz-composer

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

NSTextField sizeToFit或帧更新将文本移到左侧

sizeToFit在NSTextField上的方法有一个奇怪的问题.

我有一个NSView,我正在创建一个CALayer和一个NSTextField.我sizeToFit根据字段值使用该方法调整CALayer的大小.它运作良好,但是当我插入一个空格时,文本在场的框架内左移(见下图).

图层和文本字段的帧都定位良好(原点不移动).

任何线索都将受到高度赞赏.

文字转换

EDIT 帧更新具有相同的行为,即使不使用sizeToFit也是如此.

有时它在插入空间时会移动,或者有时在插入空间时会回到其想要的位置.

底层不会从其原点移动.

编辑 看起来NSTextField的容器需要足够的空间来显示.我发现它实际上需要很多空间.

我们不能访问的NSTextField的容器,所以大的值调用一个帧更新或之前添加到字符串(根据字体的大小)的宽度[self sizeThatFits:stringSize];[self sizeToFit];.

macos cocoa resize nstextfield

6
推荐指数
1
解决办法
1316
查看次数

GStreamer udpsrc 适用于 gst-launch 但不适用于应用程序 (OSX)

我使用 gst-launch 以这种方式成功地使用 GStreamer 流式传输我的网络摄像头图像:

服务器

./gst-launch-1.0 -v -m autovideosrc ! video/x-raw,format=BGRA ! videoconvert ! queue ! x264enc pass=qual quantizer=20 tune=zerolatency ! rtph264pay ! udpsink host=XXX.XXX.XXX.XXX port=7480
Run Code Online (Sandbox Code Playgroud)

客户

./gst-launch-1.0 udpsrc port=7480 ! "application/x-rtp, payload=127" ! rtph264depay ! decodebin ! glimagesink
Run Code Online (Sandbox Code Playgroud)

现在我尝试使用这个管道在我的应用程序中重现客户端(我没有发布代码,因为我在我的管道和元素周围做了一个 Objective-C 包装器):

  1. udpsrc 带大写:"application/x-rtp,media=video,payload=127,encoding-name=H264"

  2. rtph264depay

  3. 解码器
  4. glimagesink(用于测试)或将图像转换为 CVPixelBufferRef 的自定义应用程序接收器(在拉模式下)(已测试:它适用于 videotestsrc / uridecodebin / 等)

它不起作用,即使管道的状态消息看起来很“正常”。我在控制台中有有关消息,SecTaskLoadEntitlements failed error=22但在使用命令行时也有消息。
我在问自己 gst-launch 下我缺少什么。我在基于 udpsrc 的管道的网络上找不到任何示例。

我的问题是:

  • 有没有人知道我们启动 gst-launch 时实际发生了什么,或者知道实际发生了什么?
  • 是否有一些使用 udpsrc 的代码中工作管道的示例?

编辑


这是我的管道的图像。如您所见,GstDecodeBin 元素不会创建 src pad,因为它没有接收或处理任何内容(我将 udpsrc 元素上的“超时”属性设置为 …

macos streaming udp gstreamer h.264

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

SceneKit避免在特定节点上点亮

在SceneKit中,我正在构建一个由线条组成的节点,以在场景的中心绘制XYZ轴,就像在Cinema4D中一样.

CINEMA4D

我希望这三个节点不参与全局照明,即使光线暗/不存在/太强也可以观看.在下图中,您可以看到Z轴显得太亮,无法看到.

我的软件

有没有办法阻止节点参与场景的照明,就像物理类别掩码一样?

在这种情况下,节点如何变亮以使其出现?

macos objective-c light scenekit

3
推荐指数
2
解决办法
1500
查看次数