Questions tagged «objective-c»

仅在有关Objective-C功能或取决于语言代码的问题上使用此标记。标签[cocoa]和[cocoa-touch]应该用于询问Apple的框架或类。使用相关标签[ios],[macos],[apple-watch]和[tvos]来解决特定于这些平台的问题。

15
如何使UILabel显示轮廓文本?
我只需要在白色UILabel文字周围添加一个像素的黑色边框。 我使用下面的代码将UILabel子类化,从一些与切向相关的在线示例中我巧妙地将它们拼凑在一起。它可以工作,但速度非常非常慢(除了在模拟器上),而且我也无法使其垂直居中放置文本(因此我暂时将y值硬编码在最后一行)。啊! void ShowStringCentered(CGContextRef gc, float x, float y, const char *str) { CGContextSetTextDrawingMode(gc, kCGTextInvisible); CGContextShowTextAtPoint(gc, 0, 0, str, strlen(str)); CGPoint pt = CGContextGetTextPosition(gc); CGContextSetTextDrawingMode(gc, kCGTextFillStroke); CGContextShowTextAtPoint(gc, x - pt.x / 2, y, str, strlen(str)); } - (void)drawRect:(CGRect)rect{ CGContextRef theContext = UIGraphicsGetCurrentContext(); CGRect viewBounds = self.bounds; CGContextTranslateCTM(theContext, 0, viewBounds.size.height); CGContextScaleCTM(theContext, …

23
在学习Objective-C之前先学习C
从目前的情况来看,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意测验或进一步的讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 8年前关闭。 作为一名有抱负的苹果开发人员,如果要在进入Objective-C并最终进入Cocoa Framework之前先学习C更好,我想征询社区的意见。 我的直觉说学习C,这将为我奠定良好的基础。
107 c  objective-c  cocoa 

23
键盘出现时如何滚动UIScrollView?
我的代码有问题。我正在尝试UIScrollView在编辑UITextField时应移动键盘弹出键隐藏的。 我现在正在移动主机,因为我不知道如何在代码中“向上滚动”。因此,我做了一些代码,它工作正常,但是当我编辑一个UItextfield并切换到另一个UITextField而不按“返回”按钮时,主视图会变得很远。 我对NSLog()变量的大小,距离和textFieldRect.origin.y进行了设置,如下所示。当我将两个UITextField放在同一位置(y原点)并且执行此特定的“切换”(不按回车键)时,我得到的数字是相同的,而我的代码在第一次UITextField编辑时效果很好,但在第二次编辑时效果不佳。 看一下这个: - (void)textFieldDidBeginEditing:(UITextField *)textField { { int size; CGRect textFieldRect = [self.view.window convertRect:textField.bounds fromView:textField]; size = textFieldRect.origin.y + textFieldRect.size.height; if (change == FALSE) { size = size - distance; } if (size < PORTRAIT_KEYBOARD_HEIGHT) { distance = 0; } else if (size > PORTRAIT_KEYBOARD_HEIGHT) { distance = …

3
在输入击键时获取UITextField的值?
假设我有以下代码: IBOutlet UITextField* nameTextField; IBOutlet UILabel* greetingLabel; 我希望greetingLabel用户按下任意键后立即阅读“ Hello [nameTextField]”。 我基本上需要的是与Cocoa委托方法等效的iPhone controlTextDidChange。 的textField:shouldChangeCharactersInRange:委托方法被称为每个键击发生时: - (BOOL) textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string 字符串参数返回被按下的字符。但是,实际textField的值(nameTextField.text)保留为空白。 我在这里想念什么?(我想nameTextField反映用户到目前为止输入的确切字符串)。

11
在Objective-C中向nil发送消息
作为正在阅读Apple的Objective-C 2.0文档的Java开发人员:我想知道“ 将消息发送到nil ”的含义是什么-更不用说它的实际用途了。从文档摘录: 可可中有几种模式可以利用这一事实。从消息返回nil的值也可能有效: 如果该方法返回一个对象,任何指针类型,任何小于或等于sizeof(void *)的整数标量,浮点数,double,long double或long long,则发送给nil的消息将返回0 。 如果该方法返回如Mac OS X ABI函数调用指南所定义的要在寄存器中返回的结构,则发送到nil的消息将为数据结构中的每个字段返回0.0。其他结构数据类型将不会用零填充。 如果该方法返回上述值类型以外的任何值,则发送到nil的消息的返回值不确定。 Java是否使我的大脑无法理解上面的解释?还是我想念的东西像玻璃一样清晰? 我确实在Objective-C中有了消息/接收者的主意,我对恰好是的接收者感到困惑nil。
107 objective-c 


10
有条件地从AppDelegate的情节提要中的不同位置开始
我有一个故事板设置了正常的登录名和主视图控制器,后者是成功登录后用户导航到的视图控制器。我的目标是,如果身份验证成功(存储在钥匙串中),则立即显示主视图控制器;如果身份验证失败,则显示登录视图控制器。基本上,我想在AppDelegate中执行此操作: // url request & response work fine, assume success is a BOOL here // that indicates whether login was successful or not if (success) { // 'push' main view controller } else { // 'push' login view controller } 我知道方法performSegueWithIdentifier:但是该方法是UIViewController的实例方法,因此无法从AppDelegate中调用。如何使用现有的情节提要板来完成此任务? 编辑: 情节提要的初始视图控制器现在是未连接任何东西的导航控制器。我使用了setRootViewController:区别,因为MainIdentifier是UITabBarController。这就是我的代码: - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { BOOL …

5
正确使用beginBackgroundTaskWithExpirationHandler
我对如何使用和何时使用感到困惑beginBackgroundTaskWithExpirationHandler。 苹果在他们的示例中显示了在applicationDidEnterBackground委托中使用它的时间,以便有更多的时间完成某些重要任务,通常是网络事务。 在我的应用程序上浏览时,似乎我的大多数网络内容都很重要,并且当我启动某个应用程序时,如果用户按下主页按钮,我想完成它。 因此,包装每一个网络事务(并且我不是在谈论下载大块数据,主要是一些短xml)beginBackgroundTaskWithExpirationHandler是一种安全做法 吗?

7
Xcode调试器:查看变量的值
我在UITableViewController中的代码: delegate.myData = [myData objectAtIndex:indexPath.row]; 如何在Debugger中查看delegate.myData或的值indexPath.row?delegate.myData应该是一个数组和indexPath.row一个int。我只能看到物体的内存地址delegate,并indexPath在哪儿呢?myData和row?


9
如何将度数转换为弧度?
我正在尝试将此Obj-C代码转换为Swift代码,但我不知道该代码应该是什么? #define DEGREES_TO_RADIANS(degrees)((M_PI * degrees)/180) 我用Google搜索并找到了这个 但是我不知道如何在Swift中转换它?
107 ios  objective-c  macos  swift  macros 

6
具有固定节标题的UITableView
问候,我读到的默认行为UITableView是,当您滚动浏览各节时,将节标题行固定在表的顶部,直到下一节将previos节行从视图中推出为止。 我有一个UITableView内部UIViewController,似乎并非如此。 这仅仅是违背行为UITableViewController吗? 这是一些基于我的简化代码。我将显示该UIController接口和已实现的用于创建表视图的每个表视图方法。我有一个辅助数据源类,可帮助我为表使用索引我的对象。 @interface MyUIViewController ()<UITableViewDelegate, UITableViewDataSource> @property (nonatomic, readonly) UITableView *myTableView; @property (nonatomic, readonly) MyCustomHelperDataSource *helperDataSource; @end //when section data is set, get details for each section and reload table on success - (void)setSectionData:(NSArray *)sections { super.sectionData = sections; //this array drives the sections //get additional data for …

22
从iPhone上的NSString删除HTML标签
有几个不同的方法来去除HTML tags从NSString在Cocoa。 一种方法是将字符串呈现为NSAttributedString,然后获取呈现的文本。 另一种方法是使用NSXMLDocument's- objectByApplyingXSLTString方法来应用执行XSLT此操作的转换。 不幸的是,iPhone不支持NSAttributedString或NSXMLDocument。有太多的边缘情况和畸形HTML,我觉得使用正则表达式或舒适的文档NSScanner。有人对此有解决方案吗? 一种建议是简单地寻找打开和关闭标签字符,这种方法除了非常琐碎的情况以外,是行不通的。 例如,这些情况(来自同一主题的Perl Cookbook章节)将破坏此方法: <IMG SRC = "foo.gif" ALT = "A > B"> <!-- <A comment> --> <script>if (a<b && a>c)</script> <![INCLUDE CDATA [ >>>>>>>>>>>> ]]>

9
iOS检测3G或WiFi
我不确定是否可行,但是我有这种情况。 我在UIWebView中显示了一个网站,该网站在UISegmentedController中设置了链接。他们的网站可以检测您是否在wifi或3g网络上。 现在,分段控制器指向2个不同的页面:1-iPhone友好的登录屏幕2-登录后的主页。 现在这是一个问题: 我可以对我的应用程序进行编程以检测它是连接到WIFI还是3G(我知道你可以做到),然后根据答案转到第1段或第2段 有点像这样: if (iPhone device is on 3g) { Go to Segment 1; } else { Go to Segment 0; }


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.