问题标签 [appkit]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
3506 浏览

objective-c - NSTextField 和隐藏属性

当用户按下按钮时,我有一个隐藏的 NSTextField。我使用隐藏文本字段[textField setHidden:YES];问题是用户在文本字段中输入(即文本字段是第一响应者)并且用户按下返回键(这是隐藏文本字段的按钮的等效键)用户可以继续在文本字段中输入,即使它不可见。如何正确删除文本字段而不实际释放它?

谢谢。

0 投票
3 回答
5546 浏览

objective-c - 放大 NSView

我有一个 NSView ,用户可以在其中画圆圈。这些圆存储为 NSBezierPaths 数组,在 drawRect: 中,我循环遍历数组并调用-stroke每个路径。如何添加一个按钮来放大和缩小 NSView?只是改变视图的边界?

谢谢。

0 投票
2 回答
505 浏览

objective-c - 保持另一个应用程序的窗口处于活动状态,同时仍从另一个应用程序的窗口接收鼠标事件?

有没有办法让我的应用程序的窗口接收键盘和/或鼠标事件(即用户单击窗口的按钮),同时仍将焦点保留在另一个不相关的应用程序上?

我尝试在不同级别配置我的窗口,包括 [myWindow setLevel:NSPopUpMenuWindowLevel] 无济于事。

0 投票
1 回答
1441 浏览

objective-c - Cocoa AppKit - 关闭模式窗口(即弹出或上下文菜单)并按下当前悬停在上方的按钮

基本上我想创建系统菜单栏中提供的效果。用户按下菜单标题之一,当他在不同的标题上移动时,菜单会自动打开。

问题是,如果我打开一个按钮的弹出菜单,用户必须再次单击才能关闭它。整个运行循环处于暂停状态,因为我相信弹出菜单是模态的。当用户移动到下一个按钮时,如何才能发送 [somePopUpMenu cancelTracking]?

这是我目前在我的 NSWindow 子类中尝试的代码。关键是一旦鼠标退出一个按钮,鼠标在下一个按钮上自动点击(leftdown/leftup),定时器失效,弹出菜单取消。

假设弹出菜单打开并且鼠标存在,则触发 leftdown/leftup 事件(我知道这有效,因为我将它们记录在 NSLog 的 mouseDown 和 mouseUp 中),计时器无效,但弹出菜单仍在显示,并且假事件“点击”的另一个按钮不显示任何内容。此外,整个事情进入一个循环,并且由于某种原因发送了疯狂的 mouseDown/mouseUp。

值得注意的是,弹出菜单是在另一个对象中创建的,尽管 hookToMenu 对它有正确的引用(我通过调试/单步执行确认)。

不知道我是否正在破坏事件跟踪计时器或以错误的方式进行操作。我也通过窗口控制器尝试过,但得到了相同的结果。

对此的任何帮助将不胜感激。

0 投票
2 回答
7888 浏览

objective-c - EXC_BAD_INSTRUCTION (SIGILL) 在应用程序使用期间随机出现。AppKit 中的错误?

我目前正在 OSX 10.5 上测试我的应用程序的新版本 一位用户在使用该应用程序期间报告了一些奇怪的崩溃,遗憾的是我无法重现。乍一看,这似乎是随机发生的,一旦他在打开 NSOpenPanel 时发生崩溃,在聚焦 NSTextField 时发生崩溃,在父视图中的 NSView 切换时发生一次。

如果您知道我应该看哪个区域,将不胜感激!我完全迷失在这里。

应用程序在 XCode 3.2.1 中使用 SDK 10.5 编译,目标为 10.5

请注意,数百名客户看不到该问题,但至少有一位客户可以看到。它不仅在 [openNZBFileButtonClick] 中,即使单击 NSTextField 一次,堆栈跟踪似乎也是随机出现的。

他给我发了这些崩溃:

崩溃 1

崩溃 2

崩溃 3

0 投票
4 回答
566 浏览

iphone - 更好地为 Cocoa 绘制代码?

有哪些建议的“路径”可以更好地在 Cocoa 中绘制代码?我认为在这一点上,这是我最大的弱点。绘制代码是通用的还是 Cocoa 特有的?

谢谢!- 杰森

0 投票
1 回答
739 浏览

macos - 从 CGPath 创建 NSView

我有一个 CGPath,我想将它绘制一次到 NSView。似乎相对简单,但我还没有在 AppKit(非 iphone)中找到方法。

0 投票
1 回答
94 浏览

objective-c - 无法识别dismissPopUp

假设 button1 是一个 NSPopUpButton 假设附加到 button1 的菜单被显示并被跟踪。

[[button1 cell] dismissPopUp] ---dismissPopUp 无法识别。

为什么dismissPopUp方法无法识别?

谢谢

0 投票
2 回答
3691 浏览

cocoa - Snow Leopard & LSUIElement -> 应用程序未正确激活,窗口未“激活”,尽管是“键”

我在后台应用程序中遇到了一些问题,该应用程序使用 LSUIElement=1 隐藏其停靠项、菜单栏并防止它出现在 Command-Tab 应用程序切换器中。

这似乎是雪豹唯一的问题。

应用程序在菜单栏中放置一个 NSStatusItem 并在单击时弹出一个菜单。选择“首选项...”应该会弹出一个带有首选项的 NSWindow。

似乎不起作用的第一件事是窗口没有在前面排序,而是出现在所有其他应用程序窗口的后面。

我试图通过调用来解决这个问题

但这没有用。

过了一会儿,我发现菜单阻止了向运行循环发送消息,所以我在 MainController 上编写了另一个方法并延迟发送消息:

[self performSelector:@selector(setFront:) withObject: [preferencesController window] afterDelay:1.0];

请注意发送每一个可能的消息以使它做它应该做的方法。

这工作,有点,窗口被带到所有应用程序的所有其他窗口顶部的前面,但大多数时候它是不活动的,这意味着它的标题栏是灰色的。单击标题栏也不会使窗口处于活动状态。单击窗口的内部将使其处于活动状态!?

在 Leopard 中,这一切似乎都不是问题。只需调用 activateIgnoringOtherApps 并使窗口键似乎工作得很好。

在 Snow Leopard 中,有一个新的 API 旨在替换 LSUIElement 以模拟其行为:

http://developer.apple.com/mac/library/releasenotes/cocoa/appkit.html

我已经玩过了,但它只是 SL,我无法设置 LSUIElement。

0 投票
1 回答
617 浏览

iphone - CALayer 的用途?

CALayer 存在的目的是什么,我稍微习惯了。为什么不把属性放在 UIView 中呢?

谢谢。