小编Dru*_*erB的帖子

根据他们的frame.origin.y对UIView的NSMutableArray进行排序

我想根据他们的frame.origin.y对UIViews的NSMutableArray进行排序,我希望y的最低视图是第一个等等.可能是2个UIViews具有相同的起源.这有一个现有的方法吗?

sorting objective-c uiview nsarray ios

6
推荐指数
2
解决办法
1334
查看次数

使用Cocoa绑定,以编程方式更改NSTextField的值不会更新模型

我有一个NSTextField绑定到我的模型.如果以编程方式更改文本字段的内容,则不会更新模型.我知道你应该更新模型.

但是我正在尝试实现一个NSTextField子类,它可以在鼠标悬停在它上面时识别滚动以更改它的数值.显然我无法从这个子类访问该模型.所以你有什么建议我怎么做?

解决方案(感谢noa):

- (void)scrollWheel:(NSEvent *)theEvent {
    [self setFloatValue:[self floatValue] - [theEvent deltaY]];
    NSDictionary *bindingInfo = [self infoForBinding: NSValueBinding];
    NSObject *boundObject = [bindingInfo valueForKey:NSObservedObjectKey];
    NSString *keyPath = [bindingInfo valueForKey:NSObservedKeyPathKey];
    [boundObject setValue:[NSNumber numberWithFloat:[self floatValue]]
               forKeyPath:keyPath];
}
Run Code Online (Sandbox Code Playgroud)

xcode cocoa objective-c nstextfield cocoa-bindings

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

XCode 控制台中方括号中的数字是多少?

可能的重复:
iphone nslog 输出格式

2012-07-25 16:25:08:491 MyProject[ 2488:403 ] 应用程序完成启动。

这可能是一个简单的问题,但这些数字是多少?

xcode cocoa objective-c nsapplication

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

如何检测NSURLConnection的sendSynchronousRequest:returningResponse:error:最终是否超时或其他错误

我使用NSURLConnection's sendSynchronousRequest:returningResponse:error:方法(在一个单独的NSOperation线程中)连接到外部服务器以检索数据.如何知道操作是否超时或其他网络错误?

cocoa objective-c nsurlconnection ios

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

使用 Makefile 构建时,索引和语法突出显示在 Xcode 中不起作用

我正在使用 Xcode 来构建一个使用 Makefile 来构建的 C++ 项目。问题是,Xcode 似乎没有动态(或根本)索引源代码。我没有语法突出显示,没有实时编译错误警告,而且我无法“跳转到定义”,因为我收到“符号未找到”错误。

使用 Makefile 时是否可以让 Xcode 执行所有这些操作,或者我是否必须添加额外的 C++ 目标?

c++ xcode makefile clang lldb

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

在不阻塞主线程的情况下显示上下文 NSMenu

显示上下文NSMenu. 我提出了自己的菜单,不使用menu的特性NSResponder。原来,呈现一个NSMenu是一个阻塞操作。

在一个新的模板项目中,我只添加了以下代码 applicationDidLaunch:

NSMenu *menu = [[NSMenu alloc] initWithTitle:@"Menu"];
[menu addItemWithTitle:@"Item 1" action:@selector(selected:) keyEquivalent:@""];
[menu addItemWithTitle:@"Item 2" action:@selector(selected:) keyEquivalent:@""];
[menu addItemWithTitle:@"Item 3" action:@selector(selected:) keyEquivalent:@""];
[menu popUpMenuPositioningItem:[menu itemAtIndex:0] 
                    atLocation:CGPointMake(500, 500) 
                        inView:nil];
NSLog(@"Context menu shown.");
Run Code Online (Sandbox Code Playgroud)

popUpMenuPositioningItem:atLocation:inView:我选择一个项目或单击外部以自动关闭菜单之前,呼叫不会返回。仅在关闭菜单后才会打印日志。

为什么会发生这种情况?我该如何预防?我发现了一些关于这个问题的提及,但“解决方案”总是包括在后台执行其他事情,而不是阻止NSMenu阻塞。

编辑:

如果我在后台线程中显示菜单,菜单将变得无响应,对内部或外部的点击没有反应。

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0), ^{
    [[menu popUpMenuPositioningItem:[menu itemAtIndex:0] 
                         atLocation:CGPointMake(500, 500) 
                             inView:nil];
});
Run Code Online (Sandbox Code Playgroud)

cocoa multithreading objective-c nsmenu appkit

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

UITextView beginOfDocument返回nil

我必须得到一个包含在一个字符串的屏幕上的位置UITextView.为此,我尝试获取相应的UITextPosition(s).问题是该UITextView方法beginningOfDocument返回nil(相同endOfDocuement).有人能解释我为什么吗?我可以使用哪种解决方案.

我的代码看起来像这样:

- (UITextRange *)getRangeOfString:(NSString *)string inTextView:(UITextView *)tv
{
    UITextPosition *beginning = [tv positionFromPosition:tv.beginningOfDocument offset:[tv.text rangeOfString:string].location];
    UITextPosition *end = [tv positionFromPosition:beginning offset:[tv.text rangeOfString:string].length];

    return ([tv textRangeFromPosition:beginning toPosition:end]);
}
Run Code Online (Sandbox Code Playgroud)

cocoa-touch objective-c uitextview

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

从char数组创建NSString,其中包含\ 0字符?

我正在尝试NSString从unsigned char数组(ASCII编码)初始化一个简单的.问题是,\0数组中有一些s作为分隔符.如果我使用

[[NSString alloc] initWithBytes:bytes length:length encoding:NSASCIIEncoding];
Run Code Online (Sandbox Code Playgroud)

我只得到第一个部分\0.有没有办法获得length参数中指定的字节数量,即使有\0s?

null byte objective-c char nsstring

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

多个 if 语句的替代方案

我的代码包含很多多条if语句。有没有其他方法可以摆脱这些陈述。例如假设我有以下条件

if(t1 >= 1 && t2 == 0 && t3 == 0) $('div.b_class').fadeIn();
if(t1 == 0 && t2 >= 1 && t3 == 0) $('div.c_class').fadeIn();
if(t1 == 0 && t2 == 0 && t3 == 1) $('div.d_class').fadeIn();
if(t1 && t2 >= 1 && t3 == 0) $('div.b_class.c_class').fadeIn();
if(t1 && t3 >= 1&& t2 == 0) $('div.b_class.d_class').fadeIn();
Run Code Online (Sandbox Code Playgroud)

有什么办法可以简化这些语句吗?

javascript jquery if-statement conditional-statements

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

子类化没有委托方法的缩放UIScrollView

我想实现一个UIScrollView子类来呈现一些自定义格式化的内容.我只是设置滚动视图的模型对象属性,它处理所有必需的布局和渲染以显示内容.

这很好,但现在我想包括缩放.根据文档,为了支持缩放,您必须设置委托并实现该viewForZoomingInScrollView:方法.我想我可以将委托设置为滚动视图本身并在子类中实现该方法.但这样做我将失去拥有外部委托(如封装UIViewController)的能力,可以通知滚动事件.

假设文档是正确的,并且绝对没有(记录)方法在没有代理的情况下实现缩放,我怎么还能保留定期,无关委托的可能性?

cocoa-touch delegates objective-c uiscrollview ios

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