小编dbr*_*dbr的帖子

确定NSSlider旋钮何时在连续模式下"松开"

我正在使用NSSlider控件,并且我已将其配置为使用连续模式,以便在用户滑动时可以使用滑块的当前值不断更新NSTextField.我遇到的问题是,在用户放开旋钮之前我不想"提交"该值,即我不希望我的应用程序考虑该值,除非用户放开滑块来表示它达到了理想的价值.目前,我无法知道何时是这样的; 动作方法只是连续调用,没有指示滑块何时被释放.

如果可能的话,我需要一个解决方案来覆盖边缘情况,例如用户使用键盘或辅助功能工具(如果有这样的东西)与滑块交互.我开始研究使用鼠标事件,但由于我刚刚概述的原因,它似乎不是最佳解决方案.

cocoa objective-c nsslider

15
推荐指数
2
解决办法
3980
查看次数

如何使用Xcode 4绑定到Cocoa中的自定义视图?

在编写Mac应用程序和使用Cocoa时,我是初学者,所以请原谅我的无知.

我正在寻找创建一个自定义视图,它暴露了一些属性,然后我可以绑定到NSObjectController.由于它是一个自定义视图,Bindings Inspector显然没有列出我添加到视图中的任何属性,然后我可以使用Interface Builder绑定到这些属性.

在转向Stackoverflow/Google寻求帮助之后,我偶然发现了几个可能的解决方案,但似乎两者都不适合我的情况.第一个建议创建一个IBPlugin,这意味着我的绑定将在Bindings Inspector中提供.然后,我可以使用IB将视图绑定到控制器.显然,Xcode 4不支持IBPlugins,所以一个人不在窗外.我也假设(可能是错误地)不再支持IBPlugins,因为这些天有更好的方法来做这些事情?

第二个选项是以编程方式将控制器绑定到视图.我对如何实现这一点感到有点困惑.是否需要子类化NSObjectController,以便我可以添加绑定到视图的调用?我是否需要在视图中添加任何内容以支持此操作?我见过的一些例子说你需要覆盖bind方法,而其他人则说你没有.

另外,我注意到[self exposeBinding:@"bindingName"]初始化程序中有一些示例自定义视图调用.根据我从各种来源收集的内容,这与IBPlugins有关,如果我不使用它,我不需要这样做.那是对的吗?

我在这里找到了一篇关于Stackoverflow的帖子,似乎讨论了与我的问题非常相似的内容,但对于最佳答案没有任何明确的赢家.noa在9月12日的最后评论似乎很有趣,尽管他们提到你应该打电话exposeBinding:.这条评论是否正确?是否真的需要对exposeBinding进行调用?

为任何愚蠢的问题道歉.任何帮助非常感谢.

cocoa objective-c cocoa-bindings xcode4

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

无论属性如何,我如何将NSAttributedString居中?

我想要绘制NSAttributedString一个自定义视图并将其垂直居中,无论字体,大小等等.字符串只是1-99之间的一个小数字.

到目前为止,我已经尝试调用该[NSAttributedString size]方法以允许我确定绘制的字符串的高度.计划是在使用drawInRect:或绘制它时使用高度数字使字符串居中drawAtPoint:.我遇到的问题是,size方法返回的高度大于绘制的字形.做了一些实验后,似乎size:方法返回的属性,包括伸等最高可能字型的高度,而不是我的NSAttributedString特定字型的高度.

更新:

正如Joshua Nozzi在他的回答中提到的,我可以理解最大高度是你想要用于垂直居中的高度,因为这会阻止你的文字在字符串改变时垂直跳跃.但是,在我的情况下,我想在视觉上将一个数字(例如"10")居中,通常在一个圆圈内.这是我在关注时所关心的"10"线的实际高度.

如何获得与绘制的实际字形紧密绑定的边界框?我想我可能会在某处使用Core Text和CTLineGetImageBounds()函数; 但是,这是很多代码.如果我可以在不使用这种详细/低级代码的情况下完成,那就更好了.

我知道我可能会用上面的方法完全咆哮错误的树.你会建议什么方法?我是否需要直接使用Cocoa Text/Core Text,而不是使用NSAttributedString的添加?

Mac OS中的文本系统功能丰富,对于像我这样的初学者来说有点吓人.任何帮助非常感谢.

cocoa drawing text

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

标签 统计

cocoa ×3

objective-c ×2

cocoa-bindings ×1

drawing ×1

nsslider ×1

text ×1

xcode4 ×1