小编Oli*_*ver的帖子

无论如何,Xcode 4 Inspector Panel告诉我"无选择"

我有一个窗口,一个标签,一个按钮和一个NSObject.

我想要做的第一件事是将NSObject的类更改为我的自定义控制器的类.

问题是,我似乎无法选择它.无论我选择哪个对象,检查员面板都会显示"无选择".为什么?我很困惑.

xcode4

5
推荐指数
3
解决办法
2894
查看次数

cocoa/iPad当alpha == 0时,如何保持UIButton可点击?

当我将UIButton的alpha设置为0时,它的行为就像它没有启用一样.我已经检查了,即使按钮确实保持启用状态(虽然不可见(但没有隐藏,我也检查过)),它停止工作.

即使它的alpha为0,有没有办法让它可以点击?

cocoa-touch uibutton ipad

5
推荐指数
2
解决办法
2250
查看次数

ObjC:错误处理......返回什么

为这样一个新手问题道歉.

我编写了一个类方法,它接受三个字符串并返回一个子字符串.

我编写了条件语句,只有在满足某些条件时才允许返回子字符串.但是,如果无法提取子字符串,我不确定需要返回什么.目前我有方法返回默认的'错误'字符串,但我觉得这可能不是最好的做法.

这是我的方法:

+(NSString *)ExtractSubstringFrom:(NSString *)sourceString 
             Between:(NSString *)firstString And:(NSString *)secondString {


             NSRange stringRangeOne = [sourceString rangeOfString:secondString];
             NSString *resultString;

             if (stringRangeOne.location != NSNotFound) {
             resultString = [sourceString substringToIndex:stringRangeOne.location]; 
             }

             NSRange stringRangeTwo = [sourceString rangeOfString:firstString];

             if (stringRangeTwo.location !=NSNotFound) {
             resultString = [resultString substringFromIndex:stringRangeTwo.location+stringRangeTwo.length];
             return resultString; 
             }

             else return @"Error!";

             //To do... improve error checking

             }
Run Code Online (Sandbox Code Playgroud)

如何使此方法更加错误友好?

error-handling objective-c

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

Obj-C:类方法与实例方法 - 效率差异?

为了整洁和可重用性,我正在考虑在一个类中放入一堆实用程序方法.该类不需要任何自己的属性,因此我将方法定义为类方法; 我认为没有真正需要让这个类的实例浮动...

......还是在那儿?效率有差异吗?(一个引人注目的?)或者调用类方法的行为方式与调用类的一部分相同吗?

performance objective-c class-method

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

OSX/Cocoa问题创建状态栏项目(Apple指南不适合我)

我相信我正确地遵循了这个例子.(https://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/StatusBar/Tasks/creatingitems.html)

@interface AppDelegate : NSObject <NSApplicationDelegate> {
NSStatusItem *testItem;
NSMenu *testMenu;
}
Run Code Online (Sandbox Code Playgroud)

...

@implementation AppDelegate


- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
    testMenu = [[NSMenu alloc] init];
    [testMenu addItemWithTitle:@"An Item" action:nil keyEquivalent:nil];
    [testMenu addItemWithTitle:@"Another Item" action:nil keyEquivalent:nil];

    NSStatusBar *bar = [NSStatusBar systemStatusBar];

    testItem = [[NSStatusItem alloc] init];
    testItem = [bar statusItemWithLength:NSVariableStatusItemLength];
    [testItem setTitle: @"X"];
    [testItem setHighlightMode:YES];
    [testItem setMenu:testMenu];
    [testItem setEnabled:YES];
}
Run Code Online (Sandbox Code Playgroud)

我建立并运行.没有新的状态栏项目可供查看.为什么不?如果我是一个无知的新手,请原谅我.我认为我忽略了一些基本的东西.

cocoa objective-c nsstatusitem

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

ObjC/Cocoa NSRange:范围或索引超出范围

我试图找到一个自昨晚以来困扰我的问题的答案.

NSRange searchRange.location = 0;
NSRange searchRange.length = [string length]; // > 2000 characters long
NSString *substring = @"substring"; // Occurs within string several times

NSRange substringRange = [string rangeOfString:substring options:NSCaseInsensitiveSearch range:searchRange];

// Some code here. Create substring and add it to array.

// Move the search range on
searchRange.location = substringRange.location + substringRange.length;

// fails
substringRange = [string rangeOfString:substring options:NSCaseInsensitiveSearch range:searchRange];
Run Code Online (Sandbox Code Playgroud)

第一个[string rangeOfString ...]方法无故障地调用,但第二个调用导致以下错误:

* - [__ NSCFString rangeOfString:options:range:locale:]:范围或索引超出范围

据我所知,问题是由新值赋值给searchRange.location引起的 - 删除该语句会导致第二次成功调用该方法.看看调试器,这些值看起来像预测的那样 - 没有任何超出范围的东西 - 而且我还在监视器上尖叫.

这只是简单的添加......不是吗?

objective-c nsrange

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