删除所有图层的子图层时遇到问题.我目前手动执行此操作,但这会带来不必要的混乱.我在谷歌找到了很多关于这方面的话题,但没有答案.
我试着这样做:
for(CALayer *layer in rootLayer.sublayers)
{
[layer removeFromSublayer];
}
但它不起作用.
此外,我试图将rootLayer.sublayers克隆到单独的NSArray中,但结果是相同的.
有任何想法吗?
编辑:
我觉得它现在有效,但我错了.它适用于CALayers,但它不适用于CATextLayers.有任何想法吗?
我有一个iOS/OS X Xcode项目,我正在使用CocoaPods,我似乎无法弄清楚如何添加我自己的项目配置(除了Debug和Release)而不会完全破坏构建.
在项目中,我有许多目标,适用于两个平台及其应用扩展的应用.Xcode工作区当然也有Pods项目.
因为该项目为iOS和Mac构建目标,所以我使用CocoaPods"目标"将其pod组合在一起.我的Podfile看起来像这样:
source 'https://github.com/CocoaPods/Specs.git'
target :iOS do
platform :ios, '7.1'
link_with 'iOS', 'NozbeToday', 'NozbeShare', 'NozbeWatch'
# pods...
end
target :Mac do
platform :osx, '10.9'
link_with 'Mac'
# pods...
end
Run Code Online (Sandbox Code Playgroud)
现在我在这里遇到问题.到目前为止,我的项目中只有默认的"Debug"和"Release"配置.我想更改它们并为不同的配置文件/捆绑ID组合添加一些新的.
......我被困住了.我无法弄清楚如何做到这一点.
问题的第一个迹象是pod install针对每个目标/配置组合发出警告:
[!] CocoaPods没有设置项目的基本配置,因为您的项目已经有自定义配置集.为了使CocoaPods集成完全可用,请将目标的基本配置设置
NozbeToday为Pods/Target Support Files/Pods-iOS/Pods-iOS.dev debug.xcconfig或包含Pods/Target Support Files/Pods-iOS/Pods-iOS.dev debug.xcconfig在构建配置中.
我无法弄清楚它意味着什么以及如何解决这个问题.无论哪种方式,项目都不会构建 - 在最好的情况下,我会得到一个链接器错误,说它无法找到Pods-something.a...
我怎样才能进入Mac OS X"全局"鼠标位置 - 我的意思是我怎么能在cocoa/cf /中查找光标位置,即使它在窗外,即使我的窗口处于非活动状态?
我知道它在某种程度上是可能的(即使没有管理员权限),因为我在Java中看到过类似的东西 - 但我想在ObjC中编写它
抱歉我的英语 - 我希望你明白我的意思;)
我正在制作一个位于状态栏的应用程序.单击状态项时,将弹出NSPopover.
它看起来像这样:

这就是问题所在:我希望它是"瞬态的",即如果我点击弹出窗口外的任何地方,它就会关闭.虽然当弹出窗口在窗口中时NSPopoverBehaviorTransient正常工作,但当它在状态栏中时它不起作用.
我怎样才能自己实现这种行为?
我写了一个"Agent"Cocoa应用程序,我在状态图标的菜单中有TextField,它看起来像这样:
http://s3.ifotos.pl/img/Zrzut-ekr_hwaqnwa.png
当您使用步进器时,值inc- /减少5.我希望当您有文本字段聚焦并按"向上"或"向下"键时,同样的情况发生 - 值增加或减少5.
我已经想通了,我必须使用- (BOOL)control:(NSControl *)control textView:(NSTextView *)fieldEditor doCommandBySelector:(SEL)commandSelector的NSControlTextEditingDelegate协议.
但我真的很困惑,我是怎么做到的.通常我会这样做sth.delegate = self;,在这里我只是不知道.苹果文档的不友好语言和我糟糕的英语对我没有帮助.我试图寻找答案,但所有人只是指出,control:textView:...当我想弄清楚如何使用这种委托方法时,我的Google搜索功能失败了.
感谢很多提前.请不要打败我;)
通过定义尽可能多的常量x变量,在Swift中,速度,内存使用等方面是否有任何增益?
我的意思是,尽可能多地定义let而不是var?
我正在尝试重新编译 SwiftyUserDefaults( https://github.com/radex/SwiftyUserDefaults ) 以添加 Carthage 支持,但在尝试编译时我看到以下错误:
“NSUserDefaults”中不明确的类型名称“Proxy”
对于以下代码
public func ?= (proxy: NSUserDefaults.Proxy, @autoclosure expr: () -> Any) {
if !proxy.defaults.hasKey(proxy.key) {
proxy.defaults[proxy.key] = expr()
}
}
Run Code Online (Sandbox Code Playgroud)
和
在这种情况下,“代理”对于类型查找是不明确的
为了
public subscript(key: String) -> Proxy {
return Proxy(self, key)
}
Run Code Online (Sandbox Code Playgroud)
据我了解 - 问题出在类代理上,它嵌入在扩展中。
public extension NSUserDefaults {
class Proxy {
private let defaults: NSUserDefaults
private let key: String
private init(_ defaults: NSUserDefaults, _ key: String) {
self.defaults = defaults
self.key = key
}
// MARK: Getters
public var object: …Run Code Online (Sandbox Code Playgroud) 我有一个带有文本字段和边框按钮的窗口.它没有边框和透明,但问题在任何窗口都会重现.
该窗口的内容视图在IB中设置为绘制窗口背景的自定义类.
这是代码:
- (void)drawRect:(NSRect)dirtyRect
{
[NSGraphicsContext saveGraphicsState];
float cornerRadius = 10;
NSBezierPath *path = [NSBezierPath bezierPathWithRoundedRect:self.bounds xRadius:cornerRadius yRadius:cornerRadius];
[path setClip];
NSGradient *gradient = [[NSGradient alloc] initWithColorsAndLocations:
[NSColor colorWithCalibratedRed:0.96f green:0.96f blue:0.96f alpha:1.00f], 0.0f,
[NSColor colorWithCalibratedRed:0.84f green:0.84f blue:0.84f alpha:1.00f], 1.0f,
nil];
[gradient drawInRect:self.bounds angle:270];
[NSGraphicsContext restoreGraphicsState];
}
Run Code Online (Sandbox Code Playgroud)
它会导致一些非常奇怪的文物,比如消失的对象或文本字段的背景变为窗口:

这是怎么回事?我试图隔离它,我一直在玩这个"图形上下文状态保存"的东西(我不确定我是否理解正确),但问题仍然存在.
我有XCode 4.4,SDK是10.7(我的操作系统也是如此),部署目标是10.6.这可能没关系,但过去我一直在做类似的事情,我从未遇到过这样的奇怪问题.
我正在尝试添加一个小窗口,从系统中的任何位置向主应用程序提供"快速输入".
用户可以点击热键,窗口弹出,并漂浮在所有其他窗口之上.
在大多数情况下,这不是一个问题.我可以将NSWindow配置为:
level = Int(CGWindowLevelKey.TornOffMenuWindowLevelKey.rawValue)
collectionBehavior = .CanJoinAllSpaces
Run Code Online (Sandbox Code Playgroud)
我也可以使用NSNonactivatingPanelMask选项集作为NSPanel .
唯一的问题是:即使用户位于包含全屏应用程序的空间,我怎样才能使窗口弹出窗口?
我知道当应用程序LSUIElement=true(在Dock中没有位置的应用程序)时这是可能的,但我的不是.
在我的应用程序中,我有一个根层,以及许多图像是rootLayer的子图层.我想将rootLayer的所有子图层压缩成一个图层/图像,没有任何子图层.我想我应该通过在核心图形上下文中绘制所有子图层来做到这一点,但我不知道该怎么做.
我希望你能理解我,对不起我的英语.