我的cocoa应用程序需要一些小的dynamic生成的窗口。 我怎样才能在运行时编程创buildcocoa窗口? 这是我迄今为止的非工作尝试。 我看不出任何结果。 NSRect frame = NSMakeRect(0, 0, 200, 200); NSUInteger styleMask = NSBorderlessWindowMask; NSRect rect = [NSWindow contentRectForFrameRect:frame styleMask:styleMask]; NSWindow * window = [[NSWindow alloc] initWithContentRect:rect styleMask:styleMask backing: NSBackingStoreRetained defer:false]; [window setBackgroundColor:[NSColor blueColor]]; [window display];
我正在使用XCode6 beta并试用Swift。 当我在视图控制器中放置一些自动布局约束时,应用程序崩溃,出现以下错误: Terminating app due to uncaught exception 'NSInvalidUnarchiveOperationException', reason: 'Could not instantiate class named IBNSLayoutConstraint'
使用Xcode 6 GM种子我的代码完成已停止工作。 那天工作正常。 我正在试着去解决这个问题。 我做了一个Objc头文件,并把它作为Swift类的头文件。 在这一点上,我得到了一个Objective-C项目的代码完成。 但是,不是一个Swift项目。 我已经尝试重新启动Xcode,使一个新的空的项目。
当closures使用UIModalPresentationCustom各种视图控制器时,屏幕在视图控制器closures后变成黑色,就好像所有的视图控制器已经从视图层次中移除一样。 转换委托设置正确,animationControllerForPresentedController请求并正确传递,一旦animation结束,转换完成。 这个确切的代码在使用iOS 7 SDK进行编译时效果很好,但是在使用iOS 8b5编译时会被破坏
我想创build这种菜单,当然还有其他菜单button。 有没有代表它的默认视图控制器,或者我必须得到图像,并由我自己创build。
如果我有一个方法返回一个BOOL ,我该如何将其转换为NSString以便我可以在控制台中打印出来? 例如,我尝试过这样做,这是行不通的: NSLog(@"Is Kind of NSString:", ([thing isKindOfClass:[NSString class]]) ? @"YES" : @"NO"); 但是我真的很想把返回值转换成一个NSString。 我知道这是一个原始数据types,所以我不能调用它的方法。 我是否需要单独创build一个string,然后在NSString的方法中使用Bool作为参数?
在我的viewDidLoad方法中 locationManager = [[CLLocationManager alloc]init]; // initializing locationManager locationManager.delegate = self; // we set the delegate of locationManager to self. locationManager.desiredAccuracy = kCLLocationAccuracyBest; [locationManager startUpdatingLocation]; if([[[UIDevice currentDevice] systemVersion] floatValue] >= 8.0) { [locationManager requestWhenInUseAuthorization]; } 和请求被调用,但用户不会提示? 为什么?
我有一个包含在NSString中的文件的path。 有没有一种方法来获得其文件大小?
背景:CamelBones使用Objective-C运行时注册Perl类。 为此,每个Perl方法都使用相同的IMP函数进行注册; 该函数检查它的self & _cmd参数来查找要调用的Perl方法。 对于使用objc_msgSend调度的消息,这已经运行了好几年了。 但是现在我想添加从Perl方法返回浮点和大型结构types的支持。 浮点不难; 我将简单地写另一个返回double的IMP来处理使用objc_msgSend_fpret分派的消息。 问题是如何处理objc_msgSend_stret 。 为每个可能的结构返回types编写一个单独的IMP是不切实际的,原因有二:首先,因为即使我只为编译时已知的结构types这样做,这是一个荒谬的数量的函数。 其次,因为我们正在讨论一个可以与任意Objective-C和Perl代码链接的框架,所以在编译框架时,我们并不知道所有可能的结构types。 我希望做的是写一个单一的IMP ,可以处理任何通过objc_msgSend_stret调度的返回types。 我可以写它作为返回void ,并采取指针参数返回缓冲区,如旧的objc_msgSend_stret被宣布? 即使这件事现在还在继续,我可以依靠它继续在未来工作吗? 感谢您的任何build议 – 我一直在这个问题上绞尽脑汁。 🙂 更新: 下面是我从苹果的一个运行时间工程师那里得到的关于objc-language邮件列表的build议: 您必须编写汇编代码来处理这种情况。 在某些体系结构中,您的build议失败,其中“返回void作为第一个参数指向结构体的函数”的ABI不同于“函数返回结构体”。 (在i386中,结构地址是由调用者在一种情况下由被调用者popup的,另一种情况是由被调用者popup)。这就是为什么objc_msgSend_stret的原型被改变的原因。 汇编代码将捕获结构返回地址,走私它到非结构返回C函数调用,而不会干扰其余的参数,然后做退出(i386 ret $4上正确的ABI特定的清理。 或者,汇编代码可以捕获所有的参数。 转发机器做这样的事情。 如果你想看看这些技术是什么样的话,那么这个代码可能在开源的CoreFoundation中。 我会留下这个问题,以防有人对更好的想法感到头疼,但是直接来自苹果公司自己的“运行时间争吵者”,我认为这可能是一个权威的答案,我可能会得到。 有时间清除x86参考手册,并将我的汇编程序中的锈掉掉,我猜…
我正在尝试处理UICollectionViewController中的界面方向更改。 我试图实现的是,我想有一个接口旋转后相同的 contentOffset。 意思是说,它应该根据边界比率的变化而改变。 从纵向开始,内容偏移量为{ bounds.size.width * 2,0} … …应该导致在横向上的内容偏移{ bounds.size.width * 2,0}(反之亦然)。 计算新的偏移量不是问题,但不知道在哪里(或何时)设置它,以获得平滑的animation。 我正在做这样的票价是无效的willRotateToInterfaceOrientation:duration:并重置didRotateFromInterfaceOrientation:的内容偏移didRotateFromInterfaceOrientation: : – (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration; { self.scrollPositionBeforeRotation = CGPointMake(self.collectionView.contentOffset.x / self.collectionView.contentSize.width, self.collectionView.contentOffset.y / self.collectionView.contentSize.height); [self.collectionView.collectionViewLayout invalidateLayout]; } – (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation; { CGPoint newContentOffset = CGPointMake(self.scrollPositionBeforeRotation.x * self.collectionView.contentSize.width, self.scrollPositionBeforeRotation.y * self.collectionView.contentSize.height); [self.collectionView newContentOffset animated:YES]; } 这将改变旋转后的内容偏移量。 如何在旋转过程中设置它? 我尝试在willAnimateRotationToInterfaceOrientation:duration:设置新的内容偏移量willAnimateRotationToInterfaceOrientation:duration:但是这会导致一个非常奇怪的行为。 一个例子可以在我的GitHub项目中find 。