Tag: cocoa

UITextView背景图片

我如何设置一个背景图像到UITextView ?

iPhone耳机插孔 – 读入数据?

我有一个连接到电池供电的显示器的小设备。 当我转动设备上的轮子时,显示器将显示诸如何时开始转动车轮以及车轮转动的速度等信息。 我相信该设备正在通过3.5毫米audio插孔发送某种磁脉冲或其他东西。 而不是将设备连接到它的原始显示器,我想连接到我的iPhone和读取相同的数据。 电源线末端有一个3.5毫米的audio插孔,通常像耳机一样适合iPhone使用。 我已经研究过像HiJack这样的项目,但是我不确定如何使用我收到的数据(或者当我收到数据的时候实际来自哪里),或者我甚至可以在这种情况下使用它。 我可以通过iPhone的audio插孔从外部设备读取(到iPhone的)数据吗? 如果是的话,你build议我看看什么框架/库? 我已经看过苹果公司的AurioTouch ,但它看起来相当复杂,并不是非常简单。

你可以手动实现cocoa绑定?

我已经在我自己的NSView子类实现绑定了一个裂缝。 它可以工作,但从nib文件绑定到文件所有者时,保留周期存在问题。 稍微阅读一下后,我发现苹果几年前也有同样的问题,但是已经用一些无证的类(NSAutounbinder)修复了它。 关于保留周期问题,有一个冗长的讨论http://www.cocoabuilder.com/archive/message/cocoa/2004/6/12/109600 。 解决方法是在窗口控制器释放之前解除所有绑定,而不是在解除分配之前,放在像windowWillClose:这样的地方。 这对我来说似乎是一个不必要的手段。 我的问题是这样的:有没有办法使自定义绑定,以及由苹果公司的作品,而不使用无证的function? 我是否以错误的方式去做这件事? 更新2:我发现了一个解决scheme,允许手动实现的绑定工作完全像苹果的绑定。 它利用未logging的NSAutounbinder类,没有实际使用未logging的特征。 我将在今天晚些时候发布解决scheme。 更新: 我试着使用exposeBinding:它似乎没有任何区别 。 然而, NSObject的bind:toObject:withKeyPath:options:一半的工作。 它传播从绑定到绑定(即从模型/控制器到查看)的变化,但不会以相反的方式工作。 而且,虽然绑定器显然被观察到, observeValueForKeyPath:ofObject:change:context:从不被触发。 示例项目在这里: http : //www.tomdalling.com/wp-content/BindingsTest.zip 苹果的文档表明你实际上必须重写bind:toObject:withKeyPath:options:来实现手动绑定。 看到这里: http : //developer.apple.com/documentation/Cocoa/Conceptual/CocoaBindings/Concepts/HowDoBindingsWork.html 侧注:我已经调查了无证的NSAutounbinder是如何工作的,这里是我所知道的。 绑定创build到NSWindowController时,绑定对象实际上是一个NSAutounbinder,从NSWindowController通过 – [NSWindowController _autounbinder]获取。 NSAutounbinder是NSWindowController对象的非保留代理。 避免保留周期问题是没有保留的。 当 – [NSWindowController release]被调用并且retainCount == 1时,NSAutounbinder将所有绑定解除绑定到它自己。 这确保在释放对象之前没有悬挂指针。

为什么使用id,当我们可以只使用NSObject?

我知道,当我们想创build一个未知的值对象,我们使用ID。 不过,我很好奇,为什么苹果select在运行时决定它的值的id,当时每个对象都是NSObject的子类。 所以,而不是id delegate我们可以使用NSObject *delegate有谁知道为什么? 谢谢。

传递一个类作为参数?

我一直相信可以通过一个类作为方法参数,但是我在实现这个概念时遇到了麻烦。 现在我有这样的东西: – (id)navControllerFromView:(Class *)viewControllerClass title:(NSString *)title imageName:(NSString *)imageName { viewControllerClass *viewController = [[viewControllerClass alloc] init]; UINavigationController *thisNavController = [[UINavigationController alloc] initWithRootViewController: viewController]; thisNavController.tabBarItem = [[UITabBarItem alloc] initWithTitle: title image: [UIImage imageNamed: imageName] tag: 3]; return thisNavController; } 我这样称呼它: rootNavController = [ self navControllerFromView:RootViewController title:@"Contact" imageName:@"my_info.png" ]; 这张照片有什么问题?

Objective-C(cocoa)相当于python的endswith / beginwith

Python有string.startswith()和string.endswith()函数,这是非常有用的。 我可以使用哪些NSString方法来实现相同的function?

Xcode工作区与子项目和项目依赖关系触发构build

我希望有更好的Xcode 5的文档,但是我找不到任何像样的工作空间的最佳实践,所以.. 在一个包含多个项目的工作空间(一对夫妇框架,一个应用程序)中,是否有可能让Xcode 只在需要的时候才build立所有的依赖项目(即find更改) 而不必将所有项目包含在所有依赖的项目中 ? 我宁愿只是在项目中的框架取决于它,而不是有5-6个子项目,因为这只是一个混乱的导航视图 – 子项目中的文件始终显示在search结果中,NavView中的子项目由于种种原因在项目中展开。 然而,不包括项目的特定项目取决于我无法find一种方法让Xcode 5自动重build框架,如果其中一个依赖关系已经改变。

cocoaNSIndexSet:多个索引。 如何创build索引集,多个索引?

我想弄清楚如何创build一个让我们说(1,2,3)的索引,然后使用它 – (void)selectRowIndexes:(NSIndexSet *)indexes byExtendingSelection:(BOOL)extend 这是(NSIndexSet *)indexes我不知道如何使用/创build/填充索引1,2,3。我应该使用类方法或实例方法吗? 我尝试了很多方法,但我不知道我在做什么…

枚举值:NSInteger或int?

tl; dr版本 当枚举常量的数据types如此声明一个枚举时,如何保证是NSUInteger而不是unsigned int: enum { NSNullCellType = 0, NSTextCellType = 1, NSImageCellType = 2 }; typedef NSUInteger NSCellType; NSUInteger的typedef似乎没有以任何方式绑定到枚举声明。 完整版 我正在通过苹果的64位cocoa过渡指南阅读一些枚举值的指导,我拿出一个问题。 下面是枚举常量部分(冗长)的引用,重点是我的: 枚举(enum)常量的一个问题是它们的数据types经常是不确定的。 换句话说,枚举常量不是可预测的unsigned int。 使用传统构造的枚举,编译器实际上根据它find的内容设置基础types。 基础types可以是(signed)int或甚至long。 以下面的例子: type enum { MyFlagError = -1, MyFlagLow = 0, MyFlagMiddle = 1, MyFlagHigh = 2 } MyFlagType; 编译器查看这个声明,并find一个赋值给一个成员常量的负值,声明枚举int的基本types。 如果成员的值的范围不适合int或unsigned int,那么基types默默地变成64位(长)。 定义为枚举的数量的基types因此可以静默地改变大小以符合枚举中的值。 无论您是在编译32位还是64位,都可能发生这种情况。 不用说,这种情况给二进制兼容性带来了障碍。 为了解决这个问题,苹果决定在Cocoa API中更加明确枚举types。 现在头文件不是按照枚举来声明参数,而是单独声明枚举的types,这个枚举的大小可以被指定。 […]

界面生成器中的“模式”属性是什么,它提供了“填充比例”,“方面适合”等?

我想知道下拉“模式”是关于什么? 它包含“填表”,“看点适合”等。 我从来没有改变它,但我很好奇它可以用于什么。 有人可以解释吗?