问题标签 [nsshadow]
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.
cocoa - 绘制层支持的 NSView 超出边界的阴影
我想在无边框的 NSWindow 上获得一个自定义的 NSShadow,因为我还在窗口上应用了一些动画,所以我已经将窗口的内容视图设置为支持图层。
在 上应用 NSShadow 时contentView
,阴影在视图的边框处被剪裁:
一种可能性是减少contentView
rect ( NSInsetRect ),但是 NSWindow 的大小调整边框与窗口的外观不匹配!
是否有机会将图层的阴影绘制到其边界之外?
编辑:显示的屏幕截图已经有一个-10 的插入矩形!
ios - 在 iOS 7 中的导航栏按钮项目上使用 NSShadow
我有一个看起来像这样的导航栏:
它是使用以下代码创建的:
问题
- shadowBlurRadius 在哪里(至少对于“编辑”按钮)?请注意,我设置了
textShadow.shadowBlurRadius = 5.0;
. 提高该值似乎也无济于事。 - 是否可以为“+”栏按钮项目或其他非文本栏按钮项目(例如 UIBarButtonSystemItemCamera)添加阴影?我想避免生成自己的光栅化图像。
此问题仅适用于 iOS 7。
objective-c - 创建 NSShadow 会出错
我在 Objective-C 中制作一个白色阴影并使用代码
它似乎工作正常,但是当我试图将它缩短到
我收到错误消息“Initializing 'NSShadow *__strong' with an expression of in compatible type 'void'”有人知道这里发生了什么吗?
ios - 无法在多行 nsstring 上获得投影
我正在尝试在不使用已弃用的 API 的情况下使用投影来绘制多行文本。它适用于单行。相关代码如下所示:
输出如下所示:
我已经在使用 xCode 6 构建的 iPhone 5 (7.1.2)、iPhone 6 (8.0) 上对此进行了测试。在使用 xCode 5 构建时,我也在 iPhone 5 上对其进行了测试。
ios - iOS中的NSShadow set()方法
在Apple 的 UIKit 中 NSShadow 的文档中,他们声明:
NSShadow 对象可以以两种方式之一使用。首先,它可以像颜色或字体一样进行设置,在这种情况下,它的属性将应用于之后绘制的所有内容——或者至少在应用另一个阴影或恢复之前的图形状态之前。
但是 NSShadow 似乎没有set()
方法,至少在 UIKit 中是这样。我是否遗漏了什么,或者这是 Apple 的错误(可能是因为从AppKit Mac OS X NSShadow 文档中逐字复制)?
有什么方法可以实现这种set()
行为,还是 NSAttributedStrings 是 NSShadow 在 UIKit 中唯一有用的东西?
ios - NSShadowAttributeName 不起作用
谁能看出以下 Swift 代码有什么问题?
我使用类似的代码来更改NSForegroundColorAttributeName
and NSStrokeColorAttributeName
(它有效),但由于某种原因,它不适用于NSShadowAttributeName
. 我知道它略有不同,但我错过了什么?
objective-c - Objective C - OS X - 将 NSShadow 添加到 NSImageView 的问题
我正在尝试向 MAC 应用程序上的 NSImageView 添加阴影。
我创建了一个自定义 NSImageView 类“ShadowView.h”并修改了 drawRect: 如下所示:
然而什么也没有发生。此外,当我调试时,我可以看到上面的代码被调用。我从 5 年前看过这个问题,但它似乎不再起作用
谢谢!
ios - CATextLayer 忽略 NSShadow?
我有一个UIView
我创建的自定义,它有几个自定义UIControl
实例,它们是非矩形按钮(而不是使用UIButton
实例)。我这样做是因为我需要能够绘制非矩形按钮并让它们仅响应非矩形区域中的点击。
因为UIControl
不附带 a UILabel
,所以我使用 aCATextLayer
来添加此功能。我希望我正在绘制的文本(通过设置layer.string
等于 an NSAttributedString
)对其应用阴影,但它似乎CATextLayer
忽略了任何NSShadow
属性。
无论哪种方式,我都找不到任何文档来告诉我,但实际上,以下内容不起作用:
也就是说CATextLayer
,除了NSShadow
. 因此,上面的代码与这段代码的工作方式完全相同(据我所知):
有人确定我正在做的事情是否应该有效吗?我正在使用 iOS 9.3 模拟器进行测试,所以我认为这不是 iOS 10 测试版问题。
如果它不能那样工作,有人知道非矩形UIButton
替换的更好解决方案吗?
macos - Shadow is drawn in "main" Storyboard but not in any other storyboard
I try to write my own comboBox as NSComboBox does not has features I need.
So, I subclassed an NSTextField and monitor the textinput and depending of the stringValue a TableView will get it's data.
So when the TableView should be displayed the TextFields superview will add the NSScrollView and adjust it's height and so on. All of that works fine.
What goes not so well is the DropShadow.
So, I create a new Xcode-Project an in the main.Storyboard add a NSTextField and change the class to my Subclass. As soon as I type text the TableView appears and has a the dropShadow.
Next I create a new Storyboard, add a new WindowController and do the same steps as in the main.Storyboard: Adding an NSTextField, change the class to my subclass. Now I add a Button in the main.Storyboard which has an action to present the new Storyboard.
In the new storyboard the textfield and tableView behave as expected except that the TableView/ScrollView does not have any shadow.
Even when I change MainInterface in the Generals tab to the new Storyboard, no DropShadow for the TableView.
The Settings in the IB for both Storyboards look equal.
So, any hint how I can fix this?
Here is the code for adding and displaying the scrollView:
macos - 具有透明度的 NSWindow 阴影,如何剪切某些区域
在我们的 OS X 应用程序中,我们通过view.window?.hasShadow = true
. 这将在 NSWindow 上创建一个精细的阴影。我们通过自定义视图在应用程序中创建了一个洞,以通过其遮罩层查看背景。
我们的问题是阴影在孔区域中也是可见的。我们可以让阴影不出现在透明区域吗?我们已经搜索过,但没有得到任何东西可以在某些区域剪辑窗口阴影。
这个阴影在应用程序中造成了一些问题
- 我们提供了一个按钮来折叠/展开有洞的视图。所以孔会根据它扩大和缩小。此时窗口不会重新计算阴影。我们已经尝试过
view.window?.invalidateShadow()
. 但它没有任何效果。 - 我们正在透明区域上绘制一些文本。当展开折叠发生时,我们可以看到绘制文本的痕迹。它会一直在那里。
如果我们调整应用程序的大小,一切都会好起来的,这将重新计算阴影。我们如何克服这些问题。解决方法是什么。