Tag: cocoa

在iOS8中无法获得正确的键盘高度值

我正在使用这段代码来确定键盘的大小: – (void)keyboardWillChange:(NSNotification *)notification { NSDictionary* keyboardInfo = [notification userInfo]; NSValue* keyboardFrameBegin = [keyboardInfo valueForKey:UIKeyboardFrameBeginUserInfoKey]; CGRect keyboardFrameBeginRect = [keyboardFrameBegin CGRectValue]; } 我正在模拟器中运行。 问题是,因为iOS 8这不会给出正确的价值,如果键盘的build议起来,或者如果我把它们推下来,我得到不同的(不正确的)值。 我怎样才能得到键盘的确切大小,包括键盘的build议?

现在有没有办法使drawRect工作?

原来的问题……………………………………….. 如果您是drawRect的高级用户,您将会知道当然在“所有处理完成”之前,drawRect才会真正运行。 setNeedsDisplay将视图标记为无效的操作系统,并基本上等待,直到所有的处理完成。 这可以在你想要的普通情况下生气: 视图控制器1 启动一些function2 增量式3 创造出越来越复杂的艺术作品 在每一步,你setNeedsDisplay(错!)5 直到所有的工作完成6 当然,当你做上述1-6时,所发生的只是在第6步之后,drawRect 才运行一次 。 您的目标是在第5点刷新视图。该怎么办? 解决原来的问题……………………………………… 。 总而言之,你可以(A)背景大型的绘画,并调用前景的UI更新或(B)争论有争议的有四个“立即”方法build议不要使用后台进程。 对于什么工作的结果,运行演示程序。 它有#定义所有五种方法。 汤姆·斯威夫特(Tom Swift)介绍的真正惊人的替代解决scheme……………… 汤姆·斯威夫特(Tom Swift)解释了简单地操作运行循环的奇妙想法。 以下是您如何触发运行循环: [[NSRunLoop currentRunLoop] runMode:NSDefaultRunLoopMode beforeDate:[NSDate date]]; 这是一个真正令人惊叹的工程。 当然,在操作运行循环时应​​该非常小心,许多人指出这种方法对于专家来说是严格的。 奇异的问题……………………………………… 。 尽pipe有许多方法可行,但实际上它们并不“起作用”,因为在演示中会看到一个奇怪的渐进式减速神器。 滚动到下面粘贴的“答案”,显示控制台输出 – 你可以看到它是如何逐渐减慢。 这是新的SO问题: 运行循环/ drawRect中的神秘的“渐进式减速”问题 这里是演示应用程序的V2 … http://www.fileswap.com/dl/p8lU3gAi/stepwiseDrawingV2.zip.html 你会看到它testing所有五种方法, #ifdef TOMSWIFTMETHOD [self setNeedsDisplay]; [[NSRunLoop currentRunLoop] runMode:NSDefaultRunLoopMode beforeDate:[NSDate date]]; #endif #ifdef […]

调整UILabel以适应?

如何修改下面的代码片段(在tableView:cellForRowAtIndexPath:UITableViewController方法中)来自iPhone Developer's Cookbook第6章的“09a – PrefsTable” if (row == 1) { // Create a big word-wrapped UILabel cell = [tableView dequeueReusableCellWithIdentifier:@"libertyCell"]; if (!cell) { cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:@"libertyCell"] autorelease]; [cell addSubview:[[UILabel alloc] initWithFrame:CGRectMake(20.0f, 10.0f, 280.0f, 330.0f)]]; } UILabel *sv = [[cell subviews] lastObject]; sv.text = @"When in the Course of human events, it becomes […]

UITextField的初始键盘animation超级慢速滞后/延迟

好的,这个问题一直让我疯狂。 触摸我的UITextField后,键盘popup大概需要3-4秒。 这只会在应用程序启动后第一次popup键盘,然后立即开始animation。 起初我以为这是加载太多的图像或我的UITableView ,但我只创build了一个全新的项目只有一个UITextField ,我仍然遇到这个问题。 我使用iOS 5,Xcode ver 4.2,并在iPhone 4S上运行。 这是我的代码: #import "ViewController.h" @implementation ViewController – (void)viewDidLoad { [super viewDidLoad]; UITextField *textField = [[UITextField alloc] initWithFrame:CGRectMake(20, 20, 280, 30)]; textField.borderStyle = UITextBorderStyleRoundedRect; textField.delegate = self; [self.view addSubview:textField]; } @end 这是所有应用程序的常见问题? 现在,我可以做得更好的唯一方法是让textField在viewDidAppear成为/ resign第一个响应者,但是这并不能完全解决问题 – 它只是在视图加载的时候加载延迟。 如果我加载视图时立即点击textField ,我仍然得到这个问题; 如果我在触摸textField之前等待3-4秒,我没有得到延迟。

如何在Objective-C中进行string转换?

我想将一个string转换成一个双精度,并在做了一些math运算后,将其转换回一个string。 我如何在Objective-C中做到这一点? 有没有办法将一个double加到最接近的整数呢?

在iOS应用程序中坚持Cookie?

我将在iOS应用程序中使用NSHTTPCookieStorage来pipe理从url中检索到的cookie,并且我知道它将在您的应用程序运行时pipe理cookie。 但是,我想知道是否有可能在应用程序closures后坚持cookie。 然后再次打开应用程序时再读取这些cookie。 NSHTTPCookieStorage在应用程序使用之间是否存在Cookie? 或只是在应用程序运行时? 我是否需要使用CoreData来保存这些cookie?

导航控制器自定义转换animation

我一直在遵循一些教程来创build自定义animation,同时从一个视图转换到另一个视图。 我的testing项目使用自定义segue从这里工作正常,但有人告诉我,不再鼓励自定义赛格内做自定义animation,我应该使用UIViewControllerAnimatedTransitioning 。 我遵循了几个使用这个协议的教程,但都是关于模态表示的(例如本教程 )。 我想要做的是在导航控制器树中推push,但是当我尝试用show(push)segue做同样的事情时,它不再工作。 请告诉我在导航控制器中执行从一个视图到另一个视图的自定义过渡animation的正确方法。 无论如何,我可以使用所有过渡animation的一种方法吗? 如果有一天我想要做相同的animation,但是最终不得不复制代码两次,才能在模态与控制器之间进行转换,那将会很尴尬。

iOS:从url下载图片并保存在设备中

我正在尝试从url下载图片http://a3.twimg.com/profile_images/414797877/05052008321_bigger.jpg 我正在使用下面的代码,但图像不保存在设备中。 我想知道我做错了什么。 NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:@"http://a3.twimg.com/profile_images/414797877/05052008321_bigger.jpg"]]; [NSURLConnection connectionWithRequest:request delegate:self]; NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *documentsDirectory = [paths objectAtIndex:0]; NSString *localFilePath = [documentsDirectory stringByAppendingPathComponent:@"pkm.jpg"]; NSData *thedata = NULL; [thedata writeToFile:localFilePath atomically:YES]; UIImage *img = [[UIImage alloc] initWithData:thedata];

如何为Mac创buildMenubar应用程序

编辑:这是一个很好的现成的菜单栏应用程序( github源 )这个答案 。 我想知道如何做一个菜单栏应用程序,这样做的要求是什么? 我看到一个简单的菜单栏应用程序是用你的浏览器打开链接,我想创build类似的东西。 这是我喜欢做类似的应用程序。

UIImageView – 如何获取分配的图像的文件名?

是否有可能读取目前存储在UIImageView中的UIImageView's UIImage的名称? 我希望你可以做一些这样的事情,但还没有弄明白。 NSString *currentImageName = [MyIImageView getFileName];