我想根据他们的frame.origin.y对UIViews的NSMutableArray进行排序,我希望y的最低视图是第一个等等.可能是2个UIViews具有相同的起源.这有一个现有的方法吗?
我有一个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) 可能的重复:
iphone nslog 输出格式
2012-07-25 16:25:08:491 MyProject[ 2488:403 ] 应用程序完成启动。
这可能是一个简单的问题,但这些数字是多少?
我使用NSURLConnection's sendSynchronousRequest:returningResponse:error:方法(在一个单独的NSOperation线程中)连接到外部服务器以检索数据.如何知道操作是否超时或其他网络错误?
我正在使用 Xcode 来构建一个使用 Makefile 来构建的 C++ 项目。问题是,Xcode 似乎没有动态(或根本)索引源代码。我没有语法突出显示,没有实时编译错误警告,而且我无法“跳转到定义”,因为我收到“符号未找到”错误。
使用 Makefile 时是否可以让 Xcode 执行所有这些操作,或者我是否必须添加额外的 C++ 目标?
显示上下文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) 我必须得到一个包含在一个字符串的屏幕上的位置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) 我正在尝试NSString从unsigned char数组(ASCII编码)初始化一个简单的.问题是,\0数组中有一些s作为分隔符.如果我使用
[[NSString alloc] initWithBytes:bytes length:length encoding:NSASCIIEncoding];
Run Code Online (Sandbox Code Playgroud)
我只得到第一个部分\0.有没有办法获得length参数中指定的字节数量,即使有\0s?
我的代码包含很多多条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)
有什么办法可以简化这些语句吗?
我想实现一个UIScrollView子类来呈现一些自定义格式化的内容.我只是设置滚动视图的模型对象属性,它处理所有必需的布局和渲染以显示内容.
这很好,但现在我想包括缩放.根据文档,为了支持缩放,您必须设置委托并实现该viewForZoomingInScrollView:方法.我想我可以将委托设置为滚动视图本身并在子类中实现该方法.但这样做我将失去拥有外部委托(如封装UIViewController)的能力,可以通知滚动事件.
假设文档是正确的,并且绝对没有(记录)方法在没有代理的情况下实现缩放,我怎么还能保留定期,无关委托的可能性?
objective-c ×8
cocoa ×4
ios ×3
xcode ×3
cocoa-touch ×2
appkit ×1
byte ×1
c++ ×1
char ×1
clang ×1
delegates ×1
if-statement ×1
javascript ×1
jquery ×1
lldb ×1
makefile ×1
nsarray ×1
nsmenu ×1
nsstring ×1
nstextfield ×1
null ×1
sorting ×1
uiscrollview ×1
uitextview ×1
uiview ×1