我正在开发具有大量的iPad应用程序UIViewControllers,UITableViews(与细胞accessoryViews的UITextFields)等等,等等很多的UIViewControllers导航层次结构中出现.
有很多不同的地方UITextFields出现,包括as UITableViewCell accessoryViews.
我想设计一种有效的策略,用于在用户触摸UITextField当前正在编辑的内部时解除键盘.我已经搜索了键盘消除技术但尚未找到解释一般键盘解除策略如何工作的答案.
例如,我喜欢这种方法,其中以下代码被添加到任何ViewController:
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
NSLog(@"* * * * * * * * *ViewControllerBase touchesBegan");
[self.view endEditing:YES]; // dismiss the keyboard
[super touchesBegan:touches withEvent:event];
}
Run Code Online (Sandbox Code Playgroud)
......但是这种技术并不涉及例如UITableView在显示器内发生触摸的情况.因此,我需要添加一些代码来endEditing在UITableView触摸等时调用等等.这意味着我的应用程序将被大量代码用于在UIElements触摸其他各种键盘时解除键盘.
我想我可以尝试识别触摸需要截取的所有不同的地方,键盘被解雇,但在我看来,在处理iOS键盘关闭事件的某处可能有更好的设计模式.
任何人都可以在这个问题上分享他们的经验,并推荐一种特定的技术来统一处理整个应用程序中的键盘解雇吗?
非常感谢
如果我有几个类观察特定的NSNotification,观察者在发布通知时会以什么顺序通知?
我UIDocumentInteractionController用来显示PDF文件.我的文件使用非用户友好的编码文件名存储在文件系统中.我有权访问该文件的更友好的名称,但该文件未存储此名称(出于唯一性原因).
当我将文档加载到UIDocumentInteractionController视图中时,视图会在标题栏中显示不友好的"真实"文件名.
有没有办法改变显示的标题UIDocumentInteractionController?
我是否需要声明一个类级变量来保存属性,或者我可以self.{propertyname}在getter/setter中引用它?
换句话说,我可以这样做吗?(我没有mongoFormId在任何地方定义):
public string mongoFormId
{
get
{
return this.mongoFormId;
}
set
{
this.mongoFormId = value;
revalidateTransformation();
}
}
Run Code Online (Sandbox Code Playgroud) 想象一下html如下:
<body ng-app="blocksApp">
Some content goes here
<div ui-view="monty">
<div ui-view="dave">Aaa</div>
<div ui-view="pete">Bbb</div>
<div ui-view="steve">Ccc</div>
</div>
</body>
Run Code Online (Sandbox Code Playgroud)
使用ui-router,有没有办法编写一个状态,将"dave"设置为一个新的html片段,同时保持其他所有内容不受影响.
我想这样做:
$stateProvider
.state('daveonly',{
url: "/dave",
views:{
'dave':{template:"Dave now has content"}
}
})
Run Code Online (Sandbox Code Playgroud)
我无法让它发挥作用.我想这样做的原因是有时我想用部分更新替换'Dave',有时我想用部分更新替换整个'monty'.似乎ui-router不喜欢在同一个html片段中嵌套ui-views.
我正在编写一个iOS iPad应用程序,它将从网上下载数百个大型PDF文件并将其缓存在iPad上以供离线使用.
在iPad上存放它们的最佳位置在哪里?本地文件系统,核心数据还是其他一些地方?我计划将核心数据用于索引和搜索机制(使用缩略图等),并且只有在用户专门请求完整文档时才能访问PDF文档.
我的任务是将我们自己开发的多客户端CRM与Salesforce.com集成.我将编写一个基于服务器的服务,它将把每个客户的CRM数据存储区中的信息推送到Salesforce.我想使用SFDC REST API,但如果需要可以使用SOAP API.
我正在努力理解要使用的最佳安全机制.由于解决方案将基于服务器,因此连接到SFDC时不需要用户交互.我们的服务器需要能够与SFDC建立安全连接,而无需用户提供其登录凭据.
到目前为止,我已经尝试过REST API和OAuth2.0.我已经设置了一个测试SFDC帐户并在其中配置了我们的应用程序,获取了消费者密钥,密钥和回调uri.一切正常,我的回调页面收到安全令牌.我的回调页面使用提供的令牌,如下所示:
string rc = "";
try
{
string uri = "https://eu2.salesforce.com/services/data/v20.0/sobjects/";
System.Net.WebRequest req = System.Net.WebRequest.Create(uri);
req.Method = "GET";
req.Headers.Add("Authorization: Bearer " + token);
System.Net.WebResponse resp = req.GetResponse();
System.IO.StreamReader sr = new System.IO.StreamReader(resp.GetResponseStream());
rc = "code=" + code + ", response=" + sr.ReadToEnd().Trim();
}
catch (Exception ex)
{
rc = "45435465 Token=" + token + ", err=" + ex.Message;
}
return rc;
Run Code Online (Sandbox Code Playgroud)
麻烦的是,每次运行此操作时,即使我传递了SFDC提供的安全令牌,我也会收到SFDC的401(未经授权)回复.
REST API是否是这种"无人值守"访问的正确方法,任何人都可以告诉我在我的代码中做错了什么,或提供关于如何使其工作的智慧之词?
非常感谢.
使用Bootstrap我想要一个按钮组,但预先选择了一个按钮.如果我使用下面的html,则第一个按钮被预选,但即使我点击其他按钮之一,它仍然保持活动状态.
仅使用html如何定义按钮组,并选择一个按钮,当我单击其中一个按钮时,该按钮将取消选择.
<div class="btn-group">
<button type="button" class="btn btn-default active">Left</button>
<button type="button" class="btn btn-default">Middle</button>
<button type="button" class="btn btn-default">Right</button>
</div>
Run Code Online (Sandbox Code Playgroud) 当该属性是CGRect时,如何设置实例的属性.我想做这个:
CGRect rect = CGRectFromString(value);
[localClassObjectInstance setValue:rect forKey:key];
Run Code Online (Sandbox Code Playgroud)
但编译器不喜欢setValue; 它说我将CGRect发送到不兼容类型'id'的参数.
谢谢
我是Objective-c的新手.我有以下内容:
@interface HPSEnumerations : NSObject
typedef NSString* HPS_FORMELEMENTTYPE;
extern HPS_FORMELEMENTTYPE Textfield;
extern HPS_FORMELEMENTTYPE Label;
extern HPS_FORMELEMENTTYPE ImageView;
@end
Run Code Online (Sandbox Code Playgroud)
编译器给出错误:
架构i386的未定义符号:"_ ImageView",引用自:
任何人都可以解释发生了什么,以及如何解决它?我的基本要求是有一个枚举,其中我有字符串值而不是整数 - 这看起来尽可能接近我.
我有这个:
Ivar ivar = class_getInstanceVariable([self class], [name UTF8String]);
CGFloat floatVal = [coder decodeFloatForKey:name];
Run Code Online (Sandbox Code Playgroud)
然后,我想这样做:
object_setIvar(self, ivar, floatVal);
Run Code Online (Sandbox Code Playgroud)
...但是我不能像这样使用floatVal-在这种情况下使用floatVal的语法是什么?
objective-c ×5
ios ×4
angularjs ×1
asp.net ×1
asp.net-mvc ×1
c# ×1
class ×1
cocoa-touch ×1
core-data ×1
extern ×1
html ×1
oauth ×1
oauth-2.0 ×1
pointers ×1
properties ×1
reflection ×1
runtime ×1
salesforce ×1
typedef ×1
uitextfield ×1