小编rad*_*dex的帖子

删除所有CALayer的子图层

删除所有图层的子图层时遇到问题.我目前手动执行此操作,但这会带来不必要的混乱.我在谷歌找到了很多关于这方面的话题,但没有答案.

我试着这样做:

for(CALayer *layer in rootLayer.sublayers)
{
    [layer removeFromSublayer];
}

但它不起作用.

此外,我试图将rootLayer.sublayers克隆到单独的NSArray中,但结果是相同的.

有任何想法吗?

编辑:

我觉得它现在有效,但我错了.它适用于CALayers,但它不适用于CATextLayers.有任何想法吗?

cocoa core-animation objective-c

59
推荐指数
5
解决办法
5万
查看次数

如何在使用CocoaPods时向Xcode添加自定义项目配置?

我有一个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集成完全可用,请将目标的基本配置设置NozbeTodayPods/Target Support Files/Pods-iOS/Pods-iOS.dev debug.xcconfig或包含 Pods/Target Support Files/Pods-iOS/Pods-iOS.dev debug.xcconfig在构建配置中.

我无法弄清楚它意味着什么以及如何解决这个问题.无论哪种方式,项目都不会构建 - 在最好的情况下,我会得到一个链接器错误,说它无法找到Pods-something.a...

xcode objective-c ios cocoapods

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

在Mac OS X中获得"全局"鼠标位置

我怎样才能进入Mac OS X"全局"鼠标位置 - 我的意思是我怎么能在cocoa/cf /中查找光标位置,即使它在窗外,即使我的窗口处于非活动状态?

我知道它在某种程度上是可能的(即使没有管理员权限),因为我在Java中看到过类似的东西 - 但我想在ObjC中编写它

抱歉我的英语 - 我希望你明白我的意思;)

macos cocoa core-foundation

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

弹出窗口处于状态栏时的NSPopover过渡

我正在制作一个位于状态栏的应用程序.单击状态项时,将弹出NSPopover.

它看起来像这样:

在此输入图像描述

这就是问题所在:我希望它是"瞬态的",即如果我点击弹出窗口外的任何地方,它就会关闭.虽然当弹出窗口在窗口中时NSPopoverBehaviorTransient正常工作,但当它在状态栏中时它不起作用.

我怎样才能自己实现这种行为?

cocoa statusbar popover nsstatusbar osx-lion

17
推荐指数
2
解决办法
4091
查看次数

捕获NSTextField中按下的"向上"和"向下"键

我写了一个"Agent"Cocoa应用程序,我在状态图标的菜单中有TextField,它看起来像这样:

http://s3.ifotos.pl/img/Zrzut-ekr_hwaqnwa.png

当您使用步进器时,值inc- /减少5.我希望当您有文本字段聚焦并按"向上"或"向下"键时,同样的情况发生 - 值增加或减少5.

我已经想通了,我必须使用- (BOOL)control:(NSControl *)control textView:(NSTextView *)fieldEditor doCommandBySelector:(SEL)commandSelectorNSControlTextEditingDelegate协议.

但我真的很困惑,我是怎么做到的.通常我会这样做sth.delegate = self;,在这里我只是不知道.苹果文档的不友好语言和我糟糕的英语对我没有帮助.我试图寻找答案,但所有人只是指出,control:textView:...当我想弄清楚如何使用这种委托方法时,我的Google搜索功能失败了.

感谢很多提前.请不要打败我;)

cocoa objective-c nstextfield

11
推荐指数
1
解决办法
4723
查看次数

通过尽可能多地定义常量而不是变量,Swift有没有增益?

通过定义尽可能多的常量x变量,在Swift中,速度,内存使用等方面是否有任何增益?

我的意思是,尽可能多地定义let而不是var

variables var constants let swift

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

不明确的类型名称错误

我正在尝试重新编译 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)

ios swift swiftyuserdefaults

5
推荐指数
1
解决办法
2930
查看次数

窗口圆角落梯度背景在可可粉的

我有一个带有文本字段和边框按钮的窗口.它没有边框和透明,但问题在任何窗口都会重现.

该窗口的内容视图在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.这可能没关系,但过去我一直在做类似的事情,我从未遇到过这样的奇怪问题.

macos cocoa objective-c

4
推荐指数
2
解决办法
1684
查看次数

允许NSWindow(NSPanel)浮动在全屏应用之上

我正在尝试添加一个小窗口,从系统中的任何位置向主应用程序提供"快速输入".

用户可以点击热键,窗口弹出,并漂浮在所有其他窗口之上.

在大多数情况下,这不是一个问题.我可以将NSWindow配置为:

level = Int(CGWindowLevelKey.TornOffMenuWindowLevelKey.rawValue)
collectionBehavior = .CanJoinAllSpaces
Run Code Online (Sandbox Code Playgroud)

我也可以使用NSNonactivatingPanelMask选项集作为NSPanel .

唯一的问题是:即使用户位于包含全屏应用程序的空间,我怎样才能使窗口弹出窗口?

我知道当应用程序LSUIElement=true(在Dock中没有位置的应用程序)时这是可能的,但我的不是.

macos cocoa nswindow nspanel

4
推荐指数
1
解决办法
1290
查看次数

将CALayer子图层展平为一个图层

在我的应用程序中,我有一个根层,以及许多图像是rootLayer的子图层.我想将rootLayer的所有子图层压缩成一个图层/图像,没有任何子图层.我想我应该通过在核心图形上下文中绘制所有子图层来做到这一点,但我不知道该怎么做.

我希望你能理解我,对不起我的英语.

cocoa core-animation core-graphics objective-c

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