小编doc*_*ang的帖子

如何使用自定义inputView获取UITextFieldDelegate.shouldChangeCharactersInRange?

我有一个自定义键盘,我用来编辑文本mytextField,它很棒.但是,我永远不能让shouldChangeCharactersInRange代理使用我的自定义键盘执行.它在我使用我的实际键盘时执行(显然不是默认的iPhone键盘,因为我设置了mytextField.inputView = numberPad.view).我该怎么做才能使shouldChangeCharactersInRange代表使用自定义键盘触发?顺便说一句,自定义键盘只是一堆按钮.

- (void) numberPadPressed: (UIButton *)sender {
    [mytextField insertText:[[NSNumber numberWithInt:sender.tag] stringValue]];
}

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
    NSString *resultingString = [textField.text stringByReplacingCharactersInRange: range withString: string];
    NSLog(@"shouldChangeCharactersInRange: %@", resultingString);
    return true;
}

- (void)viewDidLoad {
    mytextField.text = @"";
    mytextField.inputView = numberPad.view;
    mytextField.delegate = self;
    [mytextField becomeFirstResponder];
}
Run Code Online (Sandbox Code Playgroud)

delegates uitextfield ios

9
推荐指数
2
解决办法
6751
查看次数

C++预处理器宏循环__VA_ARGS__ 1 vs 2+参数

我正在使用此帖子中的宏循环遍历我的参数.一切都很棒!但是,有没有办法这两个结合起来CCB_CREATE,并CCB_CREATE_MORE

我需要提取第一个参数object_type来编写其他代码.附加的object_types将使用FOR_EACH循环插入到地图中.

当我在使用时只有一个参数时,编译器会抱怨CCB_CREATE_MORE(Type1).为了解决这个问题,我制作了另一个宏来处理它CCB_CREATE(Type1).希望找到一个聪明的解决方案,将这两者结合成一个优雅的宏.有任何想法吗?

#define INSERT_LOADER_MAP(object_type) loader_map.insert(make_pair(#object_type, object_type##Loader::loader()))


#define CCB_CREATE_MORE(object_type,...) \
static CCNode * create##object_type##Node() { \
    std::map<std::string, CCNodeLoader*> loader_map; \
    std::string classname = #object_type; \
    FOR_EACH(INSERT_LOADER_MAP,object_type,__VA_ARGS__); \
    return loadCCBFile((classname + ".ccbi").c_str(), loader_map); \
}


#define CCB_CREATE(object_type) \
static CCNode * create##object_type##Node() { \
    std::map<std::string, CCNodeLoader*> loader_map; \
    std::string classname = #object_type; \
    INSERT_LOADER_MAP(object_type); \
    return loadCCBFile((classname + ".ccbi").c_str(), loader_map); \
}
Run Code Online (Sandbox Code Playgroud)

c++ macros

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

iOS:有没有办法确定发件人来自哪个UIControlEvent?

我将不同的UIControlEvent路由到一个事件处理程序.想知道有没有办法确定发件人来自哪个UIControlEvent?例如(内部触摸,编辑开始等...)

- (IBAction) MultipleEvents: (UITextField *)sender {
    NSLog(@"Hello World");
}
Run Code Online (Sandbox Code Playgroud)

ios

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

C++ 11 Xcode 5:链接错误

在Xcode上进行cocos2d-x 2.2.0开发5.尝试使C++ 11正常工作,但它会产生一些链接错误.任何建议都非常感谢.

该项目在github上.

下面是C++ 11配置(stackoverflow参考). C++ 11配置

我挂libstdc++.6.0.9.dylib&libz.dylib除了默认库. 链接库

错误构建日志在这里. 错误构建日志

c++ xcode cocos2d-x c++11

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

AudioToolbox 库 AVAudioPlayer 中的内存泄漏

AVAudioPlayer 对象是否存在内存引导问题?在模拟器中使用 AVAudioPlayer 时出现内存泄漏。我如何创建 AVAudioPlayer 并不重要。我用过initWithContentsOfURLInitWithData。下面是代码的一个片段。完整项目@ Github https://github.com/docchang/MemoryLeakAVAudioPlayer

NSError *error;
NSURL *playerURL = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"Bell" ofType:@"m4a"]];   
self.playerWithURL = [[AVAudioPlayer alloc] initWithContentsOfURL:playerURL error:&error];
if (!playerWithURL) {
    NSLog(@"no %@.%@: %@",@"Introduction2", @"m4a", [error localizedDescription]);  
}
playerWithURL.volume = 0.9f;
playerWithURL.numberOfLoops = 0;
[playerWithURL play];
Run Code Online (Sandbox Code Playgroud)

但是在设备上测试时没有内存泄漏。这个问题开始倾向于 AudioToolBox 库的问题,但只是想与 stackoverflow 的人确认一下。

memory-leaks avaudioplayer audiotoolbox

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

如何使用Objective-C中的类别访问@private实例变量?

正如它在Apple的文档中所述:http://developer.apple.com/library/mac/#documentation/cocoa/Conceptual/ObjectiveC/Chapters/ocCategories.html#//apple_ref/doc/uid/TP30001163-CH20-SW1

Note that a category can’t declare additional instance variables for the class; it includes only methods. However, all instance variables within the scope of the class are also within the scope of the category. That includes all instance variables declared by the class, even ones declared @private.

但是,当我尝试访问UITextField"_selectionRange"的私有实例变量时,我得到符号未找到错误.以下是我的源代码和错误消息供您参考.我为那些阅读我最后一个例子"NSString"的人道歉.这不是一个很好的例子,因为NSString类中没有任何@private实例变量.

的NSString + Utilities.h

#import <Foundation/Foundation.h>
@interface UITextField (Editing)
- (void)deleteBkw;
@end
Run Code Online (Sandbox Code Playgroud)

的NSString + Utilities.m

@implementation UITextField (Editing)
- (void)deleteBkw {
    NSLog(@"%d:%d", _selectionRange.location, _selectionRange.length);
}
@end
Run Code Online (Sandbox Code Playgroud)

错误:架构i386的未定义符号:"_ OBJC_IVAR _ …

objective-c instance-variables private-members categories ios

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

使用UISlider的自定义图像不会显示在设备上

一切都在模拟器上运行没有问题.但是,当我把它放在我的设备上它只显示ThumbImage.这真的很奇怪.我认为这可能是iOS版本问题或内存问题.我的设备是iPhone 3GS iOS 4.1.Xcode版本3.2.5.

@interface BlueChalkSlider : UISlider {}
@end

@implementation BlueChalkSlider
- (id)initWithCoder:(NSCoder *)decoder {
    if ((self = [super initWithCoder: decoder])) {      
        self.backgroundColor = [UIColor clearColor];
        [self setThumbImage:[UIImage imageNamed:@"Chalk.png"] forState:UIControlStateNormal];
        [self setMinimumTrackImage:[UIImage imageNamed:@"ChalklineBlue.png"] forState:UIControlStateNormal];
        [self setMaximumTrackImage:[UIImage imageNamed:@"ChalklineWhite.png"] forState:UIControlStateNormal];
    }
    return self;
}
@end
Run Code Online (Sandbox Code Playgroud)

custom-controls uiimage uislider ios

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

如何处理UIView中的背景图像方向

我正在使用下面的方法设置背景图像.当我旋转设备时,背景重复,这是有意义的,因为它不是图像.如果这是我设置背景图像的方式,如何处理方向更改?

- (void)viewDidLoad {
    [super viewDidLoad];
    UIColor *background = [[UIColor alloc] initWithPatternImage:[UIImage imageNamed:@"background.png"]];
    self.view.backgroundColor = background;
    [background release];
}
Run Code Online (Sandbox Code Playgroud)

iphone objective-c background-image screen-orientation ios

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

在派生类中调用泛型函数的更好方法

我想知道有没有办法设置我的Base类,这样我就不需要在调用时覆盖派生类Activate().它使用派生类的泛型类型调用相同的函数.

public abstract class Base
{
    public abstract void Activate();
}

public class A : Base
{
    public override void Activate()
    {
        Foo<A>();
    }
}

public class B : Base
{
    public override void Activate()
    {
        Foo<B>();
    }
}
Run Code Online (Sandbox Code Playgroud)

c# generics polymorphism inheritance

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