无论构建配置如何,构建我的iPad应用程序实际上并不会输出.app文件.它确实在iPad模拟器和设备上运行,但是当我点击构建或构建并运行时,二进制文件显示在"红色产品"下,并且不会在构建设置中指定的"构建"文件夹中创建.
有任何想法吗?
我有一个ListView
每行有EditText
控件的地方.我想在TextChangedListener
每一行添加一个; 一个包含额外数据的数据,它说明了哪一行EditText
.问题是,当getView
被调用时,TextWatchers
会添加多个; 因为convertView
已经有一个TextWatcher
(和一个指向不同的行).
MyTextWatcher watcher = new MyTextWatcher(currentQuestion);
EditText text = (EditText)convertView.findViewById(R.id.responseText);
text.addTextChangedListener(watcher);
Run Code Online (Sandbox Code Playgroud)
MyTextWatcher
是我的班级实施TextWatcher
; 并处理文本事件.CurrentQuestion让我知道我正在采取哪一行.当我输入框中; TextWatcher
调用多个实例.
有没有办法TextWatchers
在添加新的之前删除它?我看到了removeTextChangedListener
方法,但这需要TextWatcher
传入一个特定的,我不知道如何获得指针TextWatcher
已经存在的指针.
我继承了用ASP.Net MVC 4编写的代码库FormCollection
.每个post方法都需要一个.除了必须通过带引号的字符串访问值的烦恼之外,它还会导致诸如无法在我的ViewModel属性上使用类似东西ModelState.IsValid
或[AllowHtml]
属性之类的缺点.他们实际上并创建视图模型类为每个自己的看法,(尽管他们是非常实际的实体框架模型类只左右直接包装),但它们仅用于GET方法.
有没有什么我错过的FormCollection给出了为什么这可能实际上是一个好主意的原因?它似乎只有缺点.我想通过使用ViewModels来"修复"它.这需要花费很多工作,因为ViewModel具有接口而不是具体类的属性,这意味着要么编写自定义绑定器,要么更改ViewModel.
但也许在我使用FormCollection有意义的地方缺少一些东西?
我是Android开发的新手......来自iPhone和.Net背景.我见过与此问题非常相似的问题,但没有一个问题涉及SimpleCursorAdapter.
我有一个基本的ListActivity,它使用Cursor将SQLite查询中的数据绑定到我的ListView:
ListAdapter adapter = new SimpleCursorAdapter(
this,
android.R.layout.simple_list_item_1,
c,
new String[] {"name"},
new int[] {android.R.id.text1});
setListAdapter(adapter);
Run Code Online (Sandbox Code Playgroud)
然后单击某个项目时:
public void onListItemClick(ListView l, View v, int position, long id) {
super.onListItemClick(l, v, position, id);
//Difference between this:
Cursor c = (cursor)l.getItemAtPosition(position);
//and this??
Cursor c = (Cursor)l.getAdapter().getItem(position);
int categoryId = c.getInt(0);
}
Run Code Online (Sandbox Code Playgroud)
这是获取所选元素的id的正确方法吗?这看起来很奇怪,因为我不认为我可以在数据库关闭后使用我的光标(这是在我绑定之后).当我无法找到从该ID中获取实际项目的方法时,传入ID的重点是什么?另外,我不明白为什么getItemAtPosition()会返回一个游标......游标被绑定到整个列表; 不只是一排.最后,如果这是正确的,获得光标的两种方式之间是否存在差异?谢谢.
Apple的UIActionSheet文档让我感到困惑.首先,在iPad人机界面指南中,它说:
要了解有关在代码中使用操作表的更多信息,请参阅"iPad编程指南"中的"使用弹出窗口显示内容".
但是在"使用弹出窗口显示内容"部分中,它根本没有提到动作表!我在这里错过了什么吗?
我的主要问题是:在iPad上,UIPopoverController和UIActionSheet有什么区别?如果UIActionSheet自动出现在UIPopoverController中,是否有任何理由使用UIActionSheet?我看到它的委托和按钮的自动创建如何减少代码行数,但从可用性POV来看,是否存在差异?
此外,显示带动画的actionSheet根本不起作用.它的外观和行为与没有动画时显示的actionSheet完全相同(这与我刚刚使用UIPopoverController并且根本没有使用actionSheet完全相同).这是我的代码:
UIActionSheet *action = [[UIActionSheet alloc] initWithTitle:@"An unsaved property already exists. You must assign a name to this property before creating a new property. Would you like to:"
delegate:self
cancelButtonTitle:nil
destructiveButtonTitle:@"Overwrite"
otherButtonTitles:@"Open unsaved property", nil];
[action showFromRect:CGRectMake(0, 0, 200, 200) inView:self.mainSplitViewController.view animated:NO];
Run Code Online (Sandbox Code Playgroud)
我如何获得一个看起来像Apple文档中的示例动画actionSheet的actionSheet(从地图应用程序中,您向联系人添加位置)?
我可能最终会使用警报而不是弹出窗口或actionSheet,但理解这一点仍然有用.
谢谢!
objective-c uialertview uiactionsheet ipad uipopovercontroller
刚刚在UITableView类中发现了一个非常奇怪和意外的行为.我需要在我的部分中的最后一个表格单元格与其他单元格的高度不同,所以我基本上这样做:
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
if (indexPath.row == [tableView numberOfRowsInSection:indexPath.section] - 1)
return 44;
else
return 88; //double size for all but the last row
}
Run Code Online (Sandbox Code Playgroud)
看起来非常简单,但是当我运行它时,我得到一个无限循环而且它崩溃了.我确定当我打电话时numberOfRowsInSection:
,它会调用我的数据源tableView: numberOfRowsInSection:
方法.这是有道理的,因为tableView的方法返回数据源值的缓存版本,因此它需要第一次从数据源获取值.但是,它调用heightForRowAtIndexPath,再次传递indexPath [0,0]!它不停地做到这一点.
我能够通过使用来绕过它
[self tableView:tableView numberOfRowsInSection:indexPath.section]
Run Code Online (Sandbox Code Playgroud)
相反(调用我的datasource方法而不是tableView的方法).任何人都知道为什么会这样做?这是定义的行为吗?或Apple的TableView框架中的错误?
可能重复:
动态资源加载Android
在Android中,我可以从资源中加载一个字符串String s = getString(R.string.keyName)
.但是我的数据库中有一个类别列表,每个类别都有一个名称.如何获取该类别名称,然后根据它添加适当的字符串资源,以便它可以用于本地化?
基本上,我需要有keyName
动力; 我自己的String变量.这可能吗?谢谢.
似乎只有触摸在该视图的边界内开始时才会调用UIView的所有触摸方法.有没有办法让视图响应在视图外触摸但随后将手指拖入视图的用户?
如果重要,我的具体应用是拖动MKPinAnnotationView(使用内置的4.0拖动).如果用户将一个引脚拖动到另一个视图(这恰好是一个AnnotationView,但它可能是任何东西),我想要发生一些事情.在我放开引脚之前,没有调用拖动的方法; 并且没有方法没有被拖动的UIView似乎被调用,除非我从视图中触摸开始.
因为superview是MKMapView,所以很难只使用touchesMoved事件并检查用户是否在正确的位置.谢谢!
如果我想处理对UITextField的更改,例如用户输入它; 看起来这可以通过为该文本字段分配委托,然后让委托实现shouldChangeCharactersInRange,或者通过向textField添加目标,以及处理UIControlEventEditingChanged事件来完成.
除了使用委托方法,您可以返回NO并因此阻止用户进行编辑,这两件事之间有什么区别吗?
处理编辑开始或编辑结束的问题相同.可以使用适当的委托方法或适当的事件来完成.如果控件事件可以执行必要的工作,那么textField委托实际上是什么?
在xcode 3中,数据模型构建器中有一个有用的功能,您可以在其中突出显示实体中的某些属性/关系,右键单击,然后选择将方法和属性声明复制到剪贴板.(您可以选择是否还需要objective-c 2.0属性声明).然后,您可以将它们粘贴到NSManagedObject子类中.
我看到你仍然可以生成整个类文件; 但是,如果要向现有实体添加属性,这将无济于事.他们是否从xcode 4中删除了此功能?我一直用它!
android ×3
ios ×3
objective-c ×3
listview ×2
xcode4 ×2
asp.net-mvc ×1
core-data ×1
datamodel ×1
getstring ×1
ipad ×1
iphone ×1
mkmapview ×1
resources ×1
textwatcher ×1
touches ×1
uialertview ×1
uicontrol ×1
uitableview ×1
uitextfield ×1
xcode ×1