小编Eya*_*ler的帖子

UITextView inputView

我正在为iPad制作自定义输入法,我希望能够用我的输入法替换系统键盘并通过该输入法输入文本.

根据文档,我需要做的是使用我的视图设置inputView属性,它将被用来代替系统键盘.我这样做了,它可以工作,只要显示键盘,但我如何在文本视图中实际输入文本?

据说文本视图需要采用UIKeyInput,我可以使用协议的方法输入文本,但实际上UITextView不采用这个协议.conformsToProtocol:@protocol(UIKeyInput)返回NO并且未实现"deleteBackwards"(insertText和hasText已实现.除此之外,"insertText"不会导致textViewDidChange:调用委托方法.显然我需要将该UIKeyInput方法发送到其他对象(字段编辑器) ?)但我怎么得到它?

有任何想法吗?

iphone uikeyboard

8
推荐指数
1
解决办法
5536
查看次数

使用actionForKey的自定义属性动画:如何获取属性的新值?

在我正在研究的CALayer子类中,我有一个我想自动动画的自定义属性,也就是说,假设该属性被称为"myProperty",我想要以下代码:

[myLayer setMyProperty:newValue];
Run Code Online (Sandbox Code Playgroud)

使得当前值的平滑动画变为"newValue".

使用覆盖actionForKey:和needsDisplayForKey的方法:(参见下面的代码)我能够非常好地运行它来简单地在旧值和新值之间进行插值.

我的问题是我想使用稍微不同的动画持续时间或路径(或其他),具体取决于属性的当前值和新值,我无法弄清楚如何从actionForKey中获取新值:

提前致谢

@interface ERAnimatablePropertyLayer : CALayer {
    float myProperty;
}
@property (nonatomic, assign) float myProperty;
@end
@implementation ERAnimatablePropertyLayer
@dynamic myProperty;

- (void)drawInContext:(CGContextRef)ctx {
     ... some custom drawing code based on "myProperty"
}

- (id <CAAction>)actionForKey:(NSString *)key {
    if ([key isEqualToString:@"myProperty"]) {
        CABasicAnimation *theAnimation = [CABasicAnimation animationWithKeyPath:key];
        theAnimation.fromValue = [[self presentationLayer] valueForKey:key];

        ... I want to do something special here, depending on both from and to values...


        return theAnimation;
        }
    return [super actionForKey:key];
    }

+ (BOOL)needsDisplayForKey:(NSString …
Run Code Online (Sandbox Code Playgroud)

core-animation

7
推荐指数
1
解决办法
3657
查看次数

在绑定到NSArrayController的NSTableView中显示行索引

我有一个绑定到NSArrayController的NSTableView.我想有一个表列显示表行的索引.当你自己实现NSTableDataSource时,这很容易做到,但我无法用绑定表视图来解决它.我想我在这里寻找类似于@count键路径的东西,它给了我arrangeWebs的数量(即@index),但这显然是缺失的.

两个澄清:

  1. 每行中显示的索引是该行的索引,与数据在模型或数组控制器中实际排列的方式完全无关.例如,如果整个数据是10000个项目,则索引应该从1到10000,如果用户输入搜索词并且表格仅显示4个项目,那么数字应该从1到4,即使显示的项目实际上来自原始数组.
  2. 我需要这个,因为客户要求我这样做:-).客户端需要一种能够估计某行之前或之后的行数的方法.例如,您可能想知道添加了多少行.

cocoa nstableview nsarraycontroller

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

往返文本和返回

使用Cocoa或basic c,我如何将double转换为字符串表示形式,然后将其转换回完全相同的double.可读性并不重要,只有准确性.例如,这将工作:
双a,b;
a =某个值;
b = [[[NSNumber numberWithDouble:a] stringValue] doubleValue];

c cocoa printf nsnumber

0
推荐指数
1
解决办法
331
查看次数